write.xlsx可以将多个选项卡写入一个文件吗?

write.xlsx可以将多个选项卡写入一个文件吗?,r,openxlsx,writexl,R,Openxlsx,Writexl,在R中,我尝试使用openxlsx将一系列数据帧打印到Excel文件中。特别是在本例中,我使用list.files、read.xlsx和write.xlsx 我仍然无法将多个选项卡写入一个Excel文件 请看下面我的代码,我尝试使用for循环和手动解决方案来测试可行性,但没有成功 这就是我的代码目前的样子。对于文件列表的长度,将每个文件导入一个read函数,然后由该函数写入结果 lapply( 1:length(file.list), function(x) { write

在R中,我尝试使用openxlsx将一系列数据帧打印到Excel文件中。特别是在本例中,我使用list.files、read.xlsx和write.xlsx

我仍然无法将多个选项卡写入一个Excel文件

请看下面我的代码,我尝试使用for循环和手动解决方案来测试可行性,但没有成功

这就是我的代码目前的样子。对于文件列表的长度,将每个文件导入一个read函数,然后由该函数写入结果

lapply(
  1:length(file.list), 
  function(x) {
      write.xlsx(
        read.xlsx(file.list[i]), 
        file = file_name, 
        sheetName = file.list[i], 
        col.names = TRUE, 
        row.names = FALSE, 
        append = TRUE)
    }
)
下面的手动解决方案似乎对我也没有任何运气

df1 <- read.xlsx(file.list[1])
write.xlsx(df1, file = file_name, sheetName = file.list[1], col.names = TRUE, row.names = FALSE, append = FALSE)

df2 <- read.xlsx(file.list[2])
write.xlsx(df2, file = file_name, sheetName = file.list[2], col.names = TRUE, row.names = FALSE, append = TRUE)

到目前为止没有错误消息。最后一个文件确实看到数据被写入其中,但是,似乎只有最后一个文件打印了结果。我认为这几乎是一个覆盖周期,

也许你可以试试这个:

wb <- createWorkbook(title = "Your_Workbook_Name")
lapply(1:length(file.list), function(y) lapply(1:length(file.list), function(x) writeData(wb,file.list[i],y,col.names = TRUE, row.names = FALSE, append = TRUE)))
既然我没有办法复制这一点,也许你能理解这背后的主要思想


一个双循环,在该循环中,您将遍历所有要写入的文件,在写入之前,您将创建一个具有索引名称的工作表,然后您可以在新创建的工作表中写入所需的数据。我希望这是可以理解的,我对Lappy和sapply的了解并不是最好的,但这个想法仍然有效

您只需在write.xlsx中使用命名的数据帧列表即可。像这样的方法应该会奏效:

library(openxlsx)

df.list <- lapply(file.list, read.xlsx)
named.df.lst <- setNames(df.list, file.list)

write.xlsx( named.df.lst, file = file_name )

我不太理解你的问题,但如果你所说的选项卡是指工作分解图,你可以手动创建工作分解图并添加不同的工作表。如果您希望在一张工作表中附加几条信息,也有可能Hi Aaron,我实际上是在尝试加载多个文件,然后在工作簿中为每个单独的文件添加不同的工作表