如何使用R中的openxlsx将excel中的列自动调整为多张图纸

如何使用R中的openxlsx将excel中的列自动调整为多张图纸,r,excel,xlsx,openxlsx,R,Excel,Xlsx,Openxlsx,我有一个excel文档,有15张表格,我每月更新一次。目前,我一直在阅读文档,并对其进行如下操作 sheetNames <- openxlsx::getSheetNames("myDoc.xlsx") oldData <- lapply(sheetNames, function(x) openxlsx::readWorkbook("YouTube Search Results.xlsx",

我有一个excel文档,有15张表格,我每月更新一次。目前,我一直在阅读文档,并对其进行如下操作

sheetNames <- openxlsx::getSheetNames("myDoc.xlsx")
oldData <- lapply(sheetNames, function(x) openxlsx::readWorkbook("YouTube Search Results.xlsx", 
                                                                 sheet=x, skipEmptyRows = FALSE))
names(oldData) <- sheetNames

finalDF <- Map(bind_rows, oldData, newData)

openxlsx::write.xlsx(finalDF, "YouTube Search Results.xlsx", overwrite = TRUE)

sheetNames要完全控制输出格式,需要创建工作簿对象。但是,对于基本格式,
write.xlsx
允许您传递一些额外的格式参数,包括自动调整列宽以适应数据的宽度(有关详细信息,请参阅帮助)。只需将
colWidths=“auto”
添加到
write.xlsx
。下面是一个调整代码的可复制示例:

library(openxlsx)
library(tidyverse)

# Create sample "old" and "new" Excel files
dl = list(mtcars=mtcars, iris=iris)
write.xlsx(dl, "myDoc.xlsx")
write.xlsx(dl, "YouTube Search Results.xlsx")

# Load old data add new data, and write to a new file
sheetNames <- getSheetNames("myDoc.xlsx")
oldData <- lapply(sheetNames, function(x) readWorkbook("YouTube Search Results.xlsx", 
                                                       sheet=x, skipEmptyRows = FALSE))
newData <- lapply(sheetNames, function(x) readWorkbook("myDoc.xlsx", 
                                                       sheet=x, skipEmptyRows = FALSE))
finalDF <- Map(bind_rows, oldData, newData)

write.xlsx(finalDF, "YouTube Search Results Updated.xlsx", colWidths="auto")
库(openxlsx)
图书馆(tidyverse)
#创建示例“旧”和“新”Excel文件
dl=列表(mtcars=mtcars,iris=iris)
write.xlsx(dl,“myDoc.xlsx”)
write.xlsx(dl,“YouTube搜索结果.xlsx”)
#加载旧数据添加新数据并写入新文件

这真是太棒了!不过,我决定只创建工作簿对象,因为它还为我提供了更大的格式灵活性