使用xlsx(R包)格式化具有相同单元格样式的整个数据框

时间:2014-07-09 23:43:26

标签: r

我有一个列数可变的数据框,我想使用xlsx格式化整个数据框的相同单元格样式。我创建了单元格样式:

pct <- CellStyle(soccer, dataFormat=DataFormat("0.0%"))

但是当我尝试在addDataFrame中设置colStyle时,我不确定如何创建pct的列表,其长度与数据框的列数相同。我尝试过这样的事情:

addDataFrame(x = df, sheet = my.sheet, startRow = i, colStyle=rep(pct, length(df)))

它不起作用,因为我知道每个元素必须具有与列号对应的名称。

1 个答案:

答案 0 :(得分:7)

我有同样的问题;你必须创建一个列表CellStyle个对象,它会是这样的(假设df是data.frame个对象):

pct <- CellStyle(soccer, dataFormat=DataFormat("0.0%"))

dfColIndex <- rep(list(pct), dim(df)[2]) 
names(dfColIndex) <- seq(1, dim(df)[2], by = 1)

addDataFrame(x = df, sheet = my.sheet, startRow = i, colStyle= dfColIndex)

我使用列号命名列表元素,即使它似乎来自非强制性的帮助页面(但没有它们也不适用于我)。

我提供的代码是

的简短版本
 dfColIndex <- list("1" = pct, 
                    "2" = pct, 
                    "3" = pct, 
                    ... # and so on, for every column of you dataframe)

我找到了一个关于在this blog

编写xlsx文件的有用示例