【问题标题】:XLConnect: saveworkbook update errorXLConnect:保存工作簿更新错误
【发布时间】:2018-08-28 10:01:07
【问题描述】:

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

【问题讨论】:

  • 嗨 Anuj,你能提供一个可重现的例子吗?请检查:stackoverflow.com/help/how-to-ask
  • Anuj,请编辑您的帖子并使用代码格式将代码粘贴到那里
  • 嘿,我这样做了,发错了,
  • @Rohit 你能帮忙吗?
  • 尝试在saveWorkbook 命令中指定文件名

标签: r excel rstudio xlconnect


【解决方案1】:

我相信您使用的命令是正确的,但也许一些小的修改可以使这项工作。

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

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

setForceFormulaRecalculation(wb, sheet = "*", TRUE)

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

希望有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    相关资源
    最近更新 更多