openxlsx 使用与我的普通 Excel 应用程序不同的表格样式

openxlsx uses different tablestyles from my normal Excel application

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

谁能解释一下差异的来源以及我如何使用正常的 table 样式?我正在使用 Excel 2016.

创建 table 的示例代码:

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)

我的正常 table 样式:

openxlsx table 样式:

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

您可以在创建 excel sheet 后手动更改颜色,方法是单击功能区(页面布局->颜色->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"))

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