【问题标题】:openxlsx uses different tablestyles from my normal Excel applicationopenxlsx 使用与我的普通 Excel 应用程序不同的表格样式
【发布时间】:2019-08-23 13:01:33
【问题描述】:

我想创建一个包含具有特定格式的表格的 excel 文件。我使用了openxlsx-package 并在另一个 excel 文件中查找了我想要使用的表格样式的名称。保存新文件后,表格样式与我预期的不同。此外,该文档中的所有表格样式都与我通常拥有的不同(顺序不同且颜色略有不同),并且无法将其更改为我想要使用的样式。

有人可以解释差异来自哪里以及如何使用正常的表格样式吗?我正在使用 Excel 2016。

创建表格的示例代码:

library(openxlsx)
df <- data.frame(V1 = 1:2, V2 = letters[1:2])

wb <- createWorkbook()
addWorksheet(wb, 1)
writeDataTable(wb, 1, x = df, tableStyle = "TableStyleMedium7")

saveWorkbook(wb, file = "test.xlsx", overwrite = TRUE)

我的普通表格样式:

openxlsx 表格样式:

【问题讨论】:

    标签: r openxlsx


    【解决方案1】:

    如果从头开始创建新工作簿,openxlsx 会将默认颜色设置为 Office 2007-2010。

    您可以在创建 Excel 工作表后通过单击功能区(页面布局->颜色->Office)手动更改颜色。

    对于定期运行的工作簿,不要创建新文件,而是拉入您已设置所需默认颜色的模板。下面我打开了一个新的excel,用默认的现代颜色保存并用作模板:

    library(openxlsx)
    
    Data <- data.frame(
        X = sample(1:100),
        Y = sample(c("YES", "NO"), 10, replace = TRUE)
        )
    
    #Save sheet to Excel
      # Load template
        wb <- loadWorkbook("blank_template.xlsx")
      # Add data to worksheet & write as table
         addWorksheet(wb, "rawdata")
         writeDataTable(wb, "rawdata", Data, tableStyle = "TablestyleMedium6")   
      # Remove the blank sheet from the template
         removeWorksheet(wb, "Sheet1")
      # Save workbook
         saveWorkbook(wb, file = paste0("output_file.xlsx"))
    

    我已保存此模板并将其提取到多个运行报告中,因为人们可能会对旧颜色感到有趣。我保存了一个功能,可以删除空白表并保存文件以节省我的时间,但取决于您运行工作簿的频率,如何权衡效率取决于您。

    【讨论】:

    • 谢谢,我不知道页面布局 -> 颜色 -> Office,我喜欢使用模板的解决方案。如果我只是想将它添加到第一张工作表中,如果我只使用索引号而不是writeDataTable() 中的工作表名称,甚至可以简化它。那么addWorksheet()removeWorksheet() 也不再需要了。
    猜你喜欢
    • 2023-03-16
    • 1970-01-01
    • 2017-04-30
    • 1970-01-01
    • 2017-11-11
    • 2023-03-13
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多