【发布时间】:2018-10-23 15:00:56
【问题描述】:
有没有办法在不手动打开文件的情况下计算 excel 公式?如果 openxlsx 不是最佳选择,请随时建议其他软件包。谢谢!
我的目标是将数据粘贴到一个 excel 文件(已经存在)中,其中的公式引用了我将数据粘贴到的范围,并让 excel 刷新它的公式并计算汇总统计信息(例如总和)。我想用 R 代码更新公式并保存文件,这样我就可以在不打开/保存 Excel 文件的情况下将汇总值读入 R。
我想删除手动步骤(下图粗体)。
我使用的工作簿有两张表:rawData 和摘要。我在文件中开始之前的唯一数据是 A2:D2 上的求和公式。 A2 包含 =SUM(rawData!A:A)
require("openxlsx")
wb <- loadWorkbook("MyTestWorkBook.xlsx")
writeData(wb,iris, sheet="rawData")
saveWorkbook(wb,"MyTestWorkBook.xlsx",overwrite = TRUE)
从这里我得到了表格“摘要”,其中包含每列的总和。 我读了单子。
read.xlsx("MyTestWorkBook.xlsx","summary")
sumA sumB sumC sumD
1 0 0 0 0
我现在手动打开工作簿(不使用 R)并保存
read.xlsx("MyTestWorkBook.xlsx","summary")
sumA sumB sumC sumD
1 876.5 458.6 563.7 179.9
公式现已计算完毕。
【问题讨论】:
-
我认为您无法获取 excel 来从 excel 外部更新公式。相反,为什么不在 R 中创建摘要页面,然后输出到 excel?
-
同意,我很确定 Excel 在您打开它之前不会计算任何东西。因此,即使您使用 R 编写 Excel 公式,在您在 Excel 中打开工作簿之前,这些值也不会填充。
-
好的,谢谢!我无法在 R b/c 中创建摘要,计算 (XIRR) 有时无法在 R 中计算,我需要确认它也不会在 excel 中计算。谢谢
-
你可能会参考这个关于 XIRR 的问题:stackoverflow.com/questions/14259575/calculating-xirr-using-r
-
感谢我们有一个很好的 XIRR 函数,它在 99% 的时间里都能正常工作。它实际上只有非常负的 IRR 存在问题,而 excel 似乎计算得更好。