我正在尝试将R数据帧中的公式写入XLSX文件。我想使用单元格引用从一个工作表中引用另一个工作表中的数据。一个工作表被提供为“数据库”,然后另一个工作表应该具有引用“数据库”工作表中数据的“公式”。
R代码:
require(openxlsx)
# create workbook ---------------------------------------------------------
wb <- createWorkbook()
# add worksheets ----------------------------------------------------------
addWorksheet(wb, "database")
addWorksheet(wb, "database space")
addWorksheet(wb, "reference")
# make database -----------------------------------------------------------
df1 <- data.frame(
a = 1,
b = 2,
formula_1 = "A2 + B2"
)
## change class to formula
class(df1$formula_1) <- c(class(df1$formula_1), "formula")
# prepare formula ---------------------------------------------------------
df2 <- data.frame(
formula_2 = "$database.A2",
formula_3 = "$'database space'.B2"
)
# change class to formula
class(df2$formula_2) <- c(class(df2$formula_2), "formula")
class(df2$formula_3) <- c(class(df2$formula_3), "formula")
# write to XLSX file ------------------------------------------------------
writeData(wb, sheet = "database", x = df1)
writeData(wb, sheet = "database space", x = df1)
writeData(wb, sheet = "reference", x = df2)
# open XLSX file ----------------------------------------------------------
openXL(wb)
添加公式的常用方法有效。在openend XLSX文件中,这在工作表的单元格C3中进行了演示
database
和
database space
.但是,打开工作表时
formula
,我的问题出现了(见截图1)。单元格A2和B2均显示
#NAME?
而不是其他工作表的价值。
但是,当我手动添加单元格引用时,它可以工作(请参见屏幕截图2)。
openxlsx
版本
> packageVersion("openxlsx")
[1] â4.0.17â
我如何解决这个问题?