Форматирование чисел с использованием MLCA XLConnect
Я готовлю отчет, который мне нужно будет повторять более или менее еженедельно. Он должен идти к клиенту в 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/
Я чувствую, что делаю все правильно, но, очевидно, нет.
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
, Однако я неохотно полагаю, что это будет работать и для вас, поскольку в последнее время XLConnect ведет себя немного не так, как надо (я работаю на OS X и должен был собрать его из исходного кода на 2.15.0, так как он не удался). CRAN проверяет, так что нет двоичного кода).