这是我使用的代码。
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才能使公式生效)。你能帮我正确输入一个公式吗?
答案 0 :(得分:7)
我过去曾使用过软件包xlsx
,尽管有很大的希望,却发现它严重缺乏功能和易用性。我在一分钟前搜索了包装手册时,似乎无法做你想做的事。
好消息是包XLConnect
形式的替代。 XLConnect
使用与xlsx
相同的Java代码(来自Apache POI项目),因此您在操作系统之间仍具有相同的高级别互操作性。
XLConnect
具有满足您需求的功能:setCellFormula()
。
参考文献:
http://cran.r-project.org/web/packages/XLConnect/XLConnect.pdf
此外,我强烈推荐优秀小插图:http://cran.r-project.org/web/packages/XLConnect/vignettes/XLConnect.pdf
PS。你能告诉我喜欢这个套餐吗?
答案 1 :(得分:1)
您需要使用以下内容
cell.1$setCellFormula("A32*B33")
代替
setCellValue(cell.1, "=A32*B33")
答案 2 :(得分:-1)
另一种替代方法是输出csv文件而不是xls,然后用excel打开它。