saveWorkbook()
函数保存工作簿,更改和更新的计算在excel文件中可见,但在R上不可见(因为它具有apache poi不接受的公式)
但是,要查看单元格,我将文件保存到磁盘上,并使用另一个功能对其进行调用。但是,当我再次调用同一文件时,计算所得的字段仍显示旧值。我不想每次在工作簿中进行更改时都保存excel文件。
您是否知道一种解决方法,可以在不手动保存excel的情况下调用新值?
代码-
options(java.parameters = "-Xmx1024m")
library(rJava)
library(XLConnect)
wb = loadWorkbook(file.choose(), create = TRUE)
readWorksheet(wb,16, region = 'D25:D26')
writeWorksheet(wb,-.45,sheet = 16,startRow = 25,startCol = 4)
setForceFormulaRecalculation(wb,sheet = 16, TRUE)
saveWorkbook(wb)
detach("package:XLConnect", unload=TRUE)
detach("package:XLConnectJars", unload=TRUE)
library(xlsx)
y = read.xlsx(file.choose(), sheetIndex = 16)
因此,系统上的Excel文件显示与新的-.45值相对应的更改,但是当我再次读取该文件时,计算出的值是旧值,而不是新值。如果我手动保存文件,此问题将得到解决。
答案 0 :(得分:0)
我相信您所使用的命令是正确的,但是也许进行一些小的修改就可以使这项工作生效。
我认为您可以尝试将所需的计算放在excel的其他工作表中,并将插入的数据作为新工作表中这些计算的依赖项。
然后将其作为新的工作簿阅读,并调用新的工作表。我认为这将为您提供所需的输出。
setForceFormulaRecalculation(wb, sheet = "*", TRUE)
我将使用此命令来强制所有工作表重新计算。
希望有帮助!