我正在使用 openxlsx 包准备一个 Excel 工作簿,我想用它setColWidths()
来自动调整每个工作表中的列大小。由于我有多个工作表,并且我希望我的代码是相对的,所以我需要编写cols=
参数来调用工作表中的所有列以进行自动调整大小。但是,似乎我只能使用特定索引来填充该参数,并且该参数似乎是该函数所必需的。
现在,我当然可以计算出一张表中有多少列并调用该特定索引值,但由于这个项目涉及许多张表,这很快就会变得繁琐,并且代码无法适应不同的表。有没有一种相对的方法来调用一张表中的所有列setColWidths()
?
下面是我的虚拟数据以供参考(本例中只有一张表)。此虚拟数据将产生所需的输出,但cols=
参数不是如此处所写的相对值。有没有相对的方式来调用表中的所有列?
library(tidyverse)
library(readxl)
library(writexl)
library(openxlsx)
#### Sample Data ####
month_2024<-structure(list(`CAL MONTH` = c("Jan 2024", "Feb 2024", "Mar 2024",
"Apr 2024", "May 2024", "Jun 2024", "Jul 2024", "Aug 2024", "Sep 2024",
"Oct 2024", "Total"), `Total Number of Interactions` = c(17L,
11L, 18L, 9L, 15L, 29L, 28L, 16L, 10L, 13L, 166L)), row.names = c(NA,
-11L), class = "data.frame")
####
output<-createWorkbook()
addWorksheet(output,"2024 Analysis")
writeData(output, "2024 Analysis", `month_2024`,
startCol = 1,
startRow = 1,
colNames = TRUE,
rowNames = FALSE,
keepNA = TRUE)
setHeaderFooter(output,
sheet = "2024 Analysis",
header = c(NA, "2024 Analysis", NA),
footer = c("Data Window: January 1st, 2024 - &[Date] unless otherwise stated", NA, NA))
setColWidths(output, "2024 Analysis", cols = 1:2, widths="auto")
saveWorkbook(output, "Monthly Reporting.xlsx", overwrite = TRUE)
正如评论中的对话所示,OP 正在将数据从 R 写入 Excel。因此,解决他们问题的方法是编写
其中
df
是data.frame
正在将其内容写入当前工作表。