openxlsx writeData()可以写入多列吗?

时间:2019-02-02 14:32:06

标签: r openxlsx

以下代码在同一列的不同行上创建一个字母为a到f的excel文件。有没有办法只使用一个writeData()函数将字母分成3列和2行?

wb <- createWorkbook()
addWorksheet(wb, 1)
writeData(wb, 1, c("a", "b", "c", "d", "e", "f"), startCol = 5, startRow = 5)
saveWorkbook(wb, file = "test.xlsx", overwrite = TRUE)

所以我希望它像这样输出:

a b c
d e f

1 个答案:

答案 0 :(得分:1)

您正在向writeData函数提供向量。这就是为什么您将所有内容都放在1列中的原因。如果提供矩阵或data.frame,则会得到所需的结果。下面是一个简单的示例,可以满足您的需求。

library(openxlsx)

wb <- createWorkbook()
addWorksheet(wb, 1)

writeData(wb, 1, 
          matrix(c("a", "b", "c", "d", "e", "f"), nrow = 2), # <-- matrix / data.frame
          colNames = FALSE, # <-- set colNames to false
          startCol = 5, 
          startRow = 5)
saveWorkbook(wb, file = "test.xlsx", overwrite = TRUE)