将数据从R导出到Excel:公式不会重新计算

sta*_*ace 5 excel r

R(3.0.2)/ MSOffice 2013/Win7

假设我们有一个包含两个表的现有data.xlsx文件 - "data"和"calc".

"数据"表通过R填写:

require(XLConnect)
df <- data.frame(c(1,2,3,4,5), c(2,3,4,5,6))
wb <- loadWorkbook("data.xlsx", create=F)
setStyleAction(wb, type=XLC$"STYLE_ACTION.NONE")
writeWorksheet(wb, data=df, sheet="data", startRow=1, startCol=1, header=F)
saveWorkbook(wb)
Run Code Online (Sandbox Code Playgroud)

所以这就出现了问题 - 我有"calc"表,它引用了带有公式的"数据"表.由于某些原因,即使公式引用刚刚填充的单元格,也不会重新计算更新数据.

Excel中的计算选项变为自动,甚至将其转为手动,按F9强制重新计算不起作用.

我找到了一些奇怪的方法来完成这项工作:1.选择具有适当公式的特定单元格并按Enter键(对于每个单元格)2.再次将故障单元格上的公式拖动(用完全相同的公式覆盖公式) ..)3.参考其他文件(比如data2.xlsx)的数据表确实有效,但这对我来说是最后的选择.我不想用单独的数据文件膨胀文件结构.另外,考虑打开这两个文件以使其工作的可怕要求.

提前致谢.

sta*_*ace 5

看到此链接获得了一些点击并且解决方案隐藏在评论部分,答案如下:

wb$setForceFormulaRecalculation(T)

这应该适用于大多数包(至少是基于 rJava 的包),因为这个 java 方法是在 excel 中传递的,因此不是由 R 语言决定的。