我有一个列数可变的数据框,我想使用xlsx格式化整个数据框的相同单元格样式。我创建了单元格样式:
pct <- CellStyle(soccer, dataFormat=DataFormat("0.0%"))
但是当我尝试在addDataFrame中设置colStyle
时,我不确定如何创建pct
的列表,其长度与数据框的列数相同。我尝试过这样的事情:
addDataFrame(x = df, sheet = my.sheet, startRow = i, colStyle=rep(pct, length(df)))
它不起作用,因为我知道每个元素必须具有与列号对应的名称。
答案 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文件的有用示例