无法使用openxlsx包writeFormula函数创建数组公式

问题描述 投票:0回答:1

使用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 文件如下所示: 在此输入图片描述

我想要一个如下所示的文件: 在此输入图片描述

r excel-formula openxlsx
1个回答
0
投票

您可以迭代数据的行数:

invisible(lapply(1:nrow(data), 
   \(i) writeFormula(wb, "test", 
                     x = "=A2/B2", 
                     startCol = ncol(data)+1, 
                     startRow = i+1, 
                     array = TRUE)))
© www.soinside.com 2019 - 2024. All rights reserved.