使用openxlsx r包将数据写入excel。 需要包含可由最终用户编辑的 Excel 公式,因此我使用 openxlsx::writeFormula 函数来创建填充到所有适用行的数组公式。 当我检查 Excel 文件时,公式仅在单个单元格中,它们不会垂直跨越所有包含数据的行。
示例脚本:
library(tidyverse)
library(openxlsx)
x <- 1:5
data <- tibble(x, y = x * 2)
wb <- createWorkbook()
addWorksheet(wb, sheetName = "test")
writeFormula(wb, "test", x = "=A2/B2", startCol = "C", startRow = 2, array = TRUE)
writeData(wb, "test", data)
saveWorkbook(wb, file = "test.xlsx", overwrite = TRUE)
我创建的 Excel 文件如下所示: 在此输入图片描述
我想要一个如下所示的文件: 在此输入图片描述
您可以迭代数据的行数:
invisible(lapply(1:nrow(data),
\(i) writeFormula(wb, "test",
x = "=A2/B2",
startCol = ncol(data)+1,
startRow = i+1,
array = TRUE)))