首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XLConnect:保存工作簿更新错误

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

Stack Overflow用户
提问于 2018-08-28 18:01:08
回答 1查看 580关注 0票数 0

XLConnect中的saveWorkbook()函数保存工作簿,更改和更新的计算在excel文件中可见,但在R上不可见(因为它具有apache poi不接受的公式)。

但是,为了查看单元格,我将文件保存到磁盘并使用另一个函数调用它。但是,当我再次调用同一个文件时,计算出的字段仍然显示旧值。我不想每次在工作簿中进行更改时都保存excel文件。

您是否了解无需手动保存excel即可调用新值的解决方法?

代码-

代码语言:javascript
复制
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值相对应的更改,但当我再次读取该文件时,计算出的值是旧值,而不是新值。如果我手动保存文件,这个问题就会得到解决。

EN

回答 1

Stack Overflow用户

发布于 2018-10-20 01:41:28

我相信你正在使用的命令是正确的,但也许一些小的修改就可以让它工作。

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

然后将其作为新的工作簿读入,并调用新工作表。我想这将是你所需要的输出。

代码语言:javascript
复制
setForceFormulaRecalculation(wb, sheet = "*", TRUE)

我将使用此命令强制所有工作表重新计算。

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52055148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档