如何使用write.xlsx为单元格着色(简单示例)

时间:2013-09-16 17:18:56

标签: r xlsx

我正在将一个R数据帧写入.xlsx文件。

我希望某些细胞能够填充颜色。我在R中使用xlsx包,我发现手册很难消化。这是一个简单的例子:

data(cars)
write.xlsx(cars, "cars.xlsx")

然后,我想填写dist在20到25之间的单元格,例如

因为我只是使用write.xlsx直接编写的数据框,所以我没有工作簿java对象。

因此,我认为?CellStyle中的示例不会适用于此案例。

如果有一种简单的方法,例如,使用write.xlsx的参数定义单元格样式,或者通过选择数据框中的单元格(即,不在java对象工作簿中),我会很高兴。

1 个答案:

答案 0 :(得分:5)

您需要使用xlsx的低级API。请参阅CellStyle函数中的示例。

wb <- createWorkbook()
sheet <- createSheet(wb, "Sheet1")
rows  <- createRow(sheet, rowIndex=1)    
cell.1 <- createCell(rows, colIndex=1)[[1,1]]     
setCellValue(cell.1, "Hello R!")
cellStyle1 <- CellStyle(wb) +
    Fill(backgroundColor="orange", foregroundColor="orange",
    pattern="SOLID_FOREGROUND") 
setCellStyle(cell.1, cellStyle1) 
# Then save the workbook 
saveWorkbook(wb, "filename.xlsx")

另请参阅addDataFrame函数以添加数据框,然后使用低级API处理单元格方面:

wb <- createWorkbook()
sheet  <- createSheet(wb, sheetName="your nice sheet name")
addDataFrame(cars, sheet, row.names=FALSE)
# add manipulations here
saveWorkbook(wb, "filename.xlsx")