将多个TIBLE导出到XLSX--使用deparse(替换()时出现sheetName问题)

将多个TIBLE导出到XLSX--使用deparse(替换()时出现sheetName问题),r,r-xlsx,R,R Xlsx,我有15个tibble要导出到单个XLSX工作簿中,每组的sheetName与tibble对象的名称相同。要导出单个TIBLE,此操作非常有效: 库(xlsx) 我的藏书1%>% write.xlsx(“output_filename.xlsx”, sheetName=“my_tibble1”, append=TRUE) 然而,有足够多的这些藏书,为每一个都写出来是很耗时的。所以,我写了一个函数: output\u expediter一个选项是openxlsx library(openxlsx

我有15个tibble要导出到单个XLSX工作簿中,每组的sheetName与tibble对象的名称相同。要导出单个TIBLE,此操作非常有效:

库(xlsx)
我的藏书1%>%
write.xlsx(“output_filename.xlsx”,
sheetName=“my_tibble1”,
append=TRUE)
然而,有足够多的这些藏书,为每一个都写出来是很耗时的。所以,我写了一个函数:


output\u expediter一个选项是
openxlsx

library(openxlsx)
library(tibble)
output_expediter <- function(df, output_filename) {
     nm1 <- deparse(substitute(df))
     wb <- createWorkbook()
     addWorksheet(wb, sheetName = nm1)
     writeData(wb, sheet= nm1, x = df)
     saveWorkbook(wb =wb, file = output_filename, overwrite = TRUE)
     }


file1 <- "hello.xlsx"
df1 <- tibble(col1 = 1:5, col2 = 6:10)
output_expediter(df1, file1)
库(openxlsx)
图书馆(tibble)

输出加速程序一个选项是
openxlsx

library(openxlsx)
library(tibble)
output_expediter <- function(df, output_filename) {
     nm1 <- deparse(substitute(df))
     wb <- createWorkbook()
     addWorksheet(wb, sheetName = nm1)
     writeData(wb, sheet= nm1, x = df)
     saveWorkbook(wb =wb, file = output_filename, overwrite = TRUE)
     }


file1 <- "hello.xlsx"
df1 <- tibble(col1 = 1:5, col2 = 6:10)
output_expediter(df1, file1)
库(openxlsx)
图书馆(tibble)

输出\u催交员您是否将此应用于
lappy
loop@akrun如果我能按需要使用sheetName输出函数,我想这样做。目前,将函数应用于多个TIBLE的列表/向量将引发错误“工作簿已包含此名称的工作表”(因为如果append=TRUE,write.xlsx将不会写入已存在的工作表)。是否尝试使用openxlsx@akrun还没有,我会尝试一下,你是否将此应用于
lappy
loop@akrun如果我能按需要使用sheetName输出函数,我想这样做。目前,将函数应用于多个TIBLE的列表/向量将引发错误“工作簿已包含此名称的工作表”(因为如果append=TRUE,write.xlsx将不会写入已存在的工作表)。是否尝试使用openxlsx@akrun还没有,我会尝试一下,这会生成一个名为“”的工作表在工作簿中。如果我将名称作为字符串传递(而不是使用deparse(substitute()),它将正常工作。谢谢。iwalk在(函数(…,row.names=NULL,check.rows=FALSE,check.names=TRUE)中引发错误::参数表示不同的行数:[各个TIBLE中的行数列表]。@KevinTroy。抱歉,它对我来说工作正常。显示的数据。我使用了
packageVersion(“purr”)#[1]“0.3.2”
同样,这会在工作簿中生成一个名为“.”的工作表。如果我将名称作为字符串传递(而不是使用deparse(substitute()),则工作正常。谢谢。iwalk在(函数(…,row.names=NULL,check.rows=FALSE,check.names=TRUE)中引发“错误”:参数表示行数不同:[各种TIBLE中的行数列表]”@KevinTroy。抱歉,它对我来说工作正常。显示的数据。我使用了
packageVersion(“purr”)#[1]“0.3.2”