使用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()
。
参考文献:
-
软件包手册http://cran.r-project.org/web/packages/XLConnect/XLConnect.pdf
-
此外,我强烈build议优秀的小插曲: http : //cran.r-project.org/web/packages/XLConnect/vignettes/XLConnect.pdf
PS。 你能告诉我喜欢这个包吗?
另一种替代方法是输出csv文件而不是xls,然后用excel打开它。