【问题标题】:Apply a style to an entire Excel sheet with the R package openxlsx使用 R 包 openxlsx 将样式应用于整个 Excel 工作表
【发布时间】:2023-03-16 18:54:01
【问题描述】:

我正在使用一个名为 openxlsx 的 R 包。我创建了如下所示的AlignStyle。我想将此样式应用于标题为“测试表”的整个工作表。当我尝试将此样式应用于 Excel 工作表的所有行和所有列时,我得到一个Error in 1:Inf : result would be too long a vector

# Define a style
AlignStyle <- createStyle(halign = "CENTER", valign = "TOP")

# Apply the style
addStyle(wb, "test-sheet", style = AlignStyle, rows = 1:Inf, cols = 1:Inf, gridExpand = TRUE)

我知道我可以执行rows = 1:nrows(df) 之类的操作,但我的数据框的名称并不总是df

您知道我可以使用 openxlsx R 包将样式应用于整个工作表或整个工作簿的另一种方法吗?

【问题讨论】:

  • 它是否有理由需要Inf 而不是任意大的数字,例如 excel 的行数限制(根据 Google 为 1,048,576)?
  • 我确实尝试过,首先是在较小的规模上(50K 行和 200 列)。渲染 .xlsx 文件需要几分钟时间,它的大小超过 30 MB。此电子表格中只有大约 100 个填充单元格。我希望有更好的解决方案。

标签: r excel openxlsx


【解决方案1】:

你可以这样做:

map(df, ~addStyle(wb, "test-sheet", style = AlignStyle, rows = 0:nrow(.x)+1, cols = 0:ncol(.x)+1, gridExpand = TRUE)

如果第一行是标题,则在末尾添加 +1 将包括所有单元格

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-14
    • 2021-09-09
    • 2022-01-04
    • 2016-12-16
    相关资源
    最近更新 更多