改变细胞'从R通过XLConnect格式化在MS Excel文件中

时间:2017-03-07 20:47:38

标签: r excel xlconnect

尝试通过MS Excel对来自R的{​​{1}}工作表中的单元格进行简单更改。

具体使第一行加粗。我从快速搜索中看到的是,您可以在Excel中定义样式然后将其导入R但是此选项不适合我,因为我所做的所有更改都必须由XLConnect脚本重现。

以下是使用R创建的Excel文件的示例:

XLConnect

使用require(XLConnect) wb <- loadWorkbook("test.xlsx", create = TRUE) createSheet(wb, name = "foo") df <- data.frame(number = 1:4, species = c("dog", "cat")) writeWorksheet(wb, df, sheet = "foo", startRow = 1, startCol = 1) saveWorkbook(wb) 包可能会更容易吗?我已经遇到xlsx的技术问题。

编辑:我知道如何更改单元格的背景颜色,并假设类似的方法可用于将字体更改为粗体:

openxlsx

1 个答案:

答案 0 :(得分:4)

这个问题有一个小问题。创建一个&#34;模板&#34; Excel电子表格并创建您感兴趣的单元格样式。例如,在Excel中,我创建了一个名为my.header和my.table的新单元格样式。 my.header是11磅大胆的Calibri,my.regular是10 pt Calibri。将此Excel文件(&#34; myExcel.xlsx&#34;)保存在有用的地方。

然后在R中,执行以下操作:

library(XLConnect)
wb <- loadWorkbook("myExcel.xlsx")
# bring excel styles in the spreadsheet into R
style.title  <- getCellStyle (wb , "my.header")
style.normal <- getCellStyle (wb , "my.table")
# copy the first sheet in myExcel as a "template" for use in R
sheet_names <- getSheets(wb)
sheet_template <- sheet_names[1]

# do something useful in R    
df<-mtcars

# now clone template as a new sheet (instead of creating it)
cloneSheet(wb, sheet_template, "newSheet")
writeWorksheet  (wb , data = df , sheet ="newSheet" , startRow =1 , startCol =1 , header = TRUE )
setCellStyle(wb , sheet ="newSheet" , row =1 , col =1:dim(df)[2] , cellstyle =style.title)

saveWorkbook ( wb, "myNewExcel.xlsx")

我克隆电子表格标签,以便我也可以将观看缩放设置为我最喜欢的缩放级别......你可能不必这样做。