使用R的xlsx包将公式传递给xls文件

这是我使用的代码。

library(xlsx) wb <- loadWorkbook('D:/test.xls') sheets <- getSheets(wb) sheet <- sheets[['my_sheet']] addDataFrame(x = ds, sheet = sheet, row.names = FALSE, col.names = FALSE, startRow=3, startColumn=1) cell.1 <- createCell(rows[1], colIndex=34)[[1,1]] setCellValue(cell.1, "=A32*B33") saveWorkbook(wb, 'D:/test.xls') 

添加数据框可以毫无问题地工作。 但是当打开xls文件时,在单元格A34中看到text “= A32 * B33”(为了使公式正常工作,需要按下额外的ENTER键)。 你能帮我正确input一个公式吗?

过去我曾经使用过xlsx软件包,尽pipe很有希望,但却发现它在function和易用性方面严重不足。 当我在一分钟前search软件包手册时,似乎不可能做你想做的事情。

好消息是XLConnect软件包有一个替代scheme。 XLConnect使用与xlsx相同的Java代码(来自Apache POI项目),因此在操作系统之间仍然具有相同的高级互操作性。

XLConnect有一个你需要的function: setCellFormula()

参考文献:


PS。 你能告诉我喜欢这个包吗?

另一种替代方法是输出csv文件而不是xls,然后用excel打开它。