使用命名工作表将列表中的数据框导出到xlsx

时间:2017-12-30 00:35:08

标签: r list openxls

我需要用我的数据框列表创建一个xlsx文件。我遇到了这个解决方案openxlsx solution,见下文(或Syed的第5个答案)。但是,我的列表有51个命名数据框,我对下面的一长串数据框做了哪些更改?因为我创建的excel文件没有打开。

require(openxlsx)
list_of_datasets <- list("Name of DataSheet1" = dataframe1, "Name of Datasheet2" = dataframe2)
write.xlsx(list_of_datasets, file = "writeXLSX2.xlsx")

我尝试运行write.xlsx(listname,file =&#34;&#34;),命令成功运行并创建了一个xlsx文件,但在打开它时,它会引发错误&#34; microsoft excel无法打开文件,因为它已损坏&#34;。我试图将矢量的长度缩短到1-2,但它不会打开。

编辑:暂时由HACK解决

#extract all data frames 
list2env(soup ,.GlobalEnv)
#reassign names and form new list 
list_of_datasets1 <- list("filename"=dataframe,.....)
#write new list
write.xlsx(list_of_datasets1, file = "template.xlsx")

2 个答案:

答案 0 :(得分:2)

要创建包含多个已命名工作表的工作簿,必须使用createWorkbook()addWorksheet()writeDataTable()saveWorkbook()(按此顺序)而不是{{1} }。下面是一个基于我使用随机数据创建的数据框列表生成工作表的示例。

write.xlsx()

...和输出,注意工作簿中有5个选项卡。

enter image description here

答案 1 :(得分:0)

您还可以简单地使用append创建新工作表并根据需要命名它们。

write.xlsx(datatable, file = "File.xlsx", sheetName = "sheet1", row.names = FALSE)