我正在准备一份报告,我需要每周或多或少地重新运行一次。它需要在Excel中访问客户端,并且我一直在使用XLConnect软件包获得R,但是我遇到了一个我似乎无法自行解决的问题。
给出以下代码:
simple <- data.frame(a = c(1,2,3,,4,5), b = c(1,2,3,4,5))
library(XLConnect)
prcntg <- createCellStyle(wb)
setDataFormat(prcntg, format = "0.0")
wb <- loadWorkbook("foo.xlsx", create = FALSE)
sheet <- "bar"
createSheet(wb, sheet)
writeWorksheet(wb, simple, sheet = sheet)
rows <- 1:5
cols <- 1:2
setCellStyle(wb, sheet = sheet, row = rows, col = cols, cellstyle = prcntg)
我希望将值打印为:
a | b
1.0 | 1.0
2.0 | 2.0
3.0 | 3.0
etc.
但是,他们将进入工作表:
a | b
1 | 1
2 | 2
3 | 3
etc.
我如何得到前者而不是后者。根据我在此处看到的文档和帖子:https://miraisolutions.wordpress.com/2011/08/31/xlconnect-a-platform-independent-interface-to-excel/
我觉得我做的一切都很正确,但显然我不是。
答案 0 :(得分:1)
以下似乎对我有用:
wb <- loadWorkbook("~/Desktop/foo.xlsx", create = TRUE)
prcntg <- createCellStyle(wb)
setDataFormat(prcntg, format = "0.0")
sheet <- "bar"
createSheet(wb, sheet)
writeWorksheet(wb, simple, sheet = sheet)
rows <- 2:6
cols <- 1:2
setCellStyle(wb, sheet = sheet, row = rep(2:6,times = 2), col = rep(1:2,times = 6), cellstyle = prcntg)
saveWorkbook(wb)
这与(带警告)一起运行。请注意setCellStyle
中row和col参数的规范。但是,我不愿意假设这对你也有用,因为XLConnect最近对我来说有点不知所措(我在OS X上并且必须在2.15.0上从源代码构建它,因为它失败了CRAN检查所以没有二进制文件。