R XLConnect:保存工作簿更新错误

R XLConnect:保存工作簿更新错误,r,excel,rstudio,xlconnect,R,Excel,Rstudio,Xlconnect,XLConnect中的save工作簿()函数保存工作簿,更改和更新的计算在excel文件中可见,但在R上不可见(因为它有一个apache poi不接受的公式) 但是,为了查看单元格,我将文件保存到磁盘,并使用另一个函数调用它。但当我再次调用同一个文件时,计算字段仍然显示旧值。我不想每次更改工作簿时都保存excel文件 您是否知道一种无需手动保存excel即可调用新值的解决方法 代码- options(java.parameters = "-Xmx1024m") library(rJava) li

XLConnect中的
save工作簿()
函数保存工作簿,更改和更新的计算在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值相对应的更改,但当我再次读取该文件时,计算出的值是旧值,而不是新值。如果我手动保存文件,这个问题会得到解决。

我相信您使用的命令是正确的,但是可能需要一些小的修改才能解决这个问题

我认为您可以尝试将所需的计算放在excel中的不同工作表中,并将插入的数据视为新工作表中这些计算的依赖项

然后将其作为新的工作簿阅读,并调用新的工作表。我想这会给你带来你需要的产出

setForceFormulaRecalculation(wb, sheet = "*", TRUE)
我将使用此命令强制所有图纸重新计算


希望有帮助

你好,Anuj,你能提供一个可复制的例子吗?请检查:Anuj,请编辑您的帖子,并使用code的格式将代码粘贴到那里嘿,我这么做了,发错了,@Rohit你能帮我吗?请尝试在
saveWorkbook
命令中指定文件名