后续:在保存格式的同时,将R从R写入模板
这些是两个相关的后续问题, 从R写入Excel模板,同时保留我在这里写在一个新的线程的格式 ,因为我不能在另一个注释的答案。
-
实际上Joris Meys的回答/代码(6月27日)对我来说不起作用,我已经尝试了好几次了。
所以再说一遍:其目的是在模板文件中使用格式化或者只是保存时使用R编写excel文件。 答案中提到了两种不同的工具:XLConnect和xlsx。
Joris Meys的答案是基于XLConnect。 但是使用完全相同的代码,我的结果是充满新内容的单元格变成白色,没有任何保留的格式。 所有其他单元格(没有插入新内容的地方)确实接pipe了以前的风格。
我在WinXP中使用最新的RGUI(32-bit)V. 2.15.1,以及最新版本的XLConnect和xlsx(我也只是检查了R中的所有其他软件包是最新的)。
-
好的第二个问题与此有关:线程提到xlsx作为替代。 这个信息在我看来也是错误的。 我检查了网站,开发者似乎正在研究一个解决scheme。 目前我只能在xlsx中看到在代码中手动编写格式的可能性,例如:
cs2 <- CellStyle(wb) + Font(wb, name="Courier New", isBold=TRUE) + # add a Font Borders(col="blue", position=c("TOP", "BOTTOM"), pen="BORDER_THICK") + # add borders Alignment(h="ALIGN_RIGHT")
(来源: http : //code.google.com/p/rexcel/wiki/LowLevelAPI )
如果有人可以给出一个写excel文件的方法,同时保存R的格式,这将是非常酷的。
编辑:这是代码(只有区别“Sheet1”而不是“aSheet”,但我也试过其他变种。
require(XLConnect) wb <- loadWorkbook("test.xlsx", create=TRUE) setStyleAction(wb,XLC$"STYLE_ACTION.NONE") Data <- data.frame( a = 1:10, b = letters[1:10] ) writeWorksheet(wb,Data,"Sheet1",startRow=1,startCol=1,header=TRUE) saveWorkbook(wb)
问题1:
格式化单元格的示例代码:
library('xlsx') # create the workbook wb <- createWorkbook() sheet <- createSheet(wb, sheetName="addDataFrame1") data <- data.frame(mon=month.abb[1:10], day=1:10, year=2000:2009, date=seq(as.Date("1999-01-01"), by="1 year", length.out=10), bool=c(TRUE, FALSE), log=log(1:10), rnorm=10000*rnorm(10), datetime=seq(as.POSIXct("2011-11-06 00:00:00", tz="GMT"), by="1 hour", length.out=10)) cs1 <- CellStyle(wb) + Font(wb, isItalic=TRUE) # rowcolumns cs2 <- CellStyle(wb) + Font(wb, color="blue") cs3 <- CellStyle(wb) + Font(wb, isBold=TRUE) + Border() # header addDataFrame(data, sheet, startRow=3, startColumn=2, colnamesStyle=cs3, rownamesStyle=cs1, colStyle=list('2'=cs2, '3'=cs2)) # save the workbook ... saveWorkbook(wb, "test.xlsx")
看到输出文件。
问题2:
cs2 <- CellStyle(wb) + Font(wb, name="Courier New", isBold=TRUE) + # add a Font Borders(col="blue", position=c("TOP", "BOTTOM"), pen="BORDER_THICK") + # add borders Alignment(h="ALIGN_RIGHT")
你只需要把variables放在你在样式中使用的参数中。