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

时间:2012-03-30 11:20:21

标签: excel r formula xls xlsx

这是我使用的代码。

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才能使公式生效)。你能帮我正确输入一个公式吗?

3 个答案:

答案 0 :(得分:7)

我过去曾使用过软件包xlsx,尽管有很大的希望,却发现它严重缺乏功能和易用性。我在一分钟前搜索了包装手册时,似乎无法做你想做的事。

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

XLConnect具有满足您需求的功能:setCellFormula()

参考文献:


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

答案 1 :(得分:1)

您需要使用以下内容

cell.1$setCellFormula("A32*B33")

代替

setCellValue(cell.1, "=A32*B33")

答案 2 :(得分:-1)

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