gpt4 book ai didi

r - 使用 XLConnect 将数据写入 Excel 模板出现空单元格错误

转载 作者:行者123 更新时间:2023-12-02 11:15:05 27 4
gpt4 key购买 nike

我正在使用 R 包 XLConnect 将数据帧写入现有工作簿中的现有 Excel 工作表。 Excel 工作簿有一个原始数据工作表,我使用 R 中的 writeWorksheet() 填充该工作表,以及另一个引用原始数据工作表并执行计算的格式化数据工作表。然而,当我将数据写入 R 中的原始数据工作表时,格式化的数据工作表不会更新,并给出错误“公式引用空单元格”,即使这些单元格中包含数据。我不确定此错误是否是由于 R 和 XLConnect 还是我的工作簿中的某些内容造成的。当我将数据直接复制并粘贴到原始数据导入工作表中的单元格时,我没有收到错误。请参阅下面的示例,感谢您的帮助:

在 R 中:

library(XLConnect)

# Creating first data frame
L3 <- LETTERS[1:3]
fac <- sample(L3, 10, replace = TRUE)
(d <- data.frame(x = 1, y = 1:10, fac = fac))
df.1<-data.frame(1, 1:10, sample(L3, 10, replace = TRUE))

# Creating second data frame
L4 <- LETTERS[4:7]
fac <- sample(L4, 10, replace = TRUE)
(d <- data.frame(x = 1, y = 1:10, fac = fac))
df.2<-data.frame(1, 1:10, sample(L4, 10, replace = TRUE))

# Reading in workbook
wb <- loadWorkbook(xlname)
wbnames <- as.vector(getSheets(wb)) # where wbnames is of length two
[1] "Raw Data Import" [2] "Formatted Data"

# Writing df.1 and df.2 to specific locations in Raw Data Import worksheet
writeWorksheet(wb,df.1,sheet=wbnames[1],startRow=3,header=F)
writeWorksheet(wb,df.2,sheet=wbnames[1],startRow=15,header=F)

# Saving workbook
saveWorkbook(wb)

最佳答案

您可以使用 XLConnect 函数 setForceFormulaRecalculation()。这会强制 Excel 在打开工作表时重新计算公式值。第二个参数允许您指定要重新计算的工作表。如果设置为“*”,则会重新计算工作簿中的所有公式。

wb      <- loadWorkbook(xlname)
wbnames <- as.vector(getSheets(wb))
writeWorksheet(wb,df.1,sheet=wbnames[1],startRow=3,header=F)
writeWorksheet(wb,df.2,sheet=wbnames[1],startRow=15,header=F)
setForceFormulaRecalculation(wb,"*",TRUE)
saveWorkbook(wb,'~/test.xls')

关于r - 使用 XLConnect 将数据写入 Excel 模板出现空单元格错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27807984/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com