首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将多个data.frame导出到多个Excel工作表的简单方法

将多个data.frame导出到多个Excel工作表的简单方法
EN

Stack Overflow用户
提问于 2014-12-31 06:10:32
回答 12查看 202.5K关注 0票数 103

我很惊讶地发现没有一种简单的方法可以将多个data.frame导出到一个Excel文件的多个工作表中?我尝试过xlsx包,似乎它只能写入一个工作表(覆盖旧工作表);我也尝试过WriteXLS包,但它总是给我错误……

我的代码结构是这样的:根据设计,对于每次迭代,输出数据帧(tempTable)和sheetName (sn)都被更新并导出到一个选项卡中。

代码语言:javascript
复制
for (i in 2 : ncol(code)){ 
        ...
        tempTable <- ...
        sn <- ...
        WriteXLS("tempTable", ExcelFileName = "C:/R_code/../file.xlsx",
              SheetNames = sn);
}

我可以导出到多个cvs文件,但在Excel中必须有一种简单的方法,对吧?

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2014-12-31 06:25:36

您可以使用xlsx包写入多个工作表。您只需为每个数据框使用不同的sheetName,并且需要添加append=TRUE

代码语言:javascript
复制
library(xlsx)
write.xlsx(dataframe1, file="filename.xlsx", sheetName="sheet1", row.names=FALSE)
write.xlsx(dataframe2, file="filename.xlsx", sheetName="sheet2", append=TRUE, row.names=FALSE)

另一种选择是在R/xlsx代码中执行所有操作,然后在结束时保存工作簿,这使您可以更好地控制格式和数据框的位置。例如:

代码语言:javascript
复制
wb = createWorkbook()

sheet = createSheet(wb, "Sheet 1")

addDataFrame(dataframe1, sheet=sheet, startColumn=1, row.names=FALSE)
addDataFrame(dataframe2, sheet=sheet, startColumn=10, row.names=FALSE)

sheet = createSheet(wb, "Sheet 2")

addDataFrame(dataframe3, sheet=sheet, startColumn=1, row.names=FALSE)

saveWorkbook(wb, "My_File.xlsx")

如果您发现它很有用,下面是一些有趣的帮助器函数,它们使使用xlsx向电子表格添加格式、元数据和其他特性变得更容易:http://www.sthda.com/english/wiki/r2excel-read-write-and-format-easily-excel-files-using-r-software

票数 160
EN

Stack Overflow用户

发布于 2016-04-06 03:26:27

您还可以使用openxlsx库在单个workbook.The中将多个数据集导出到多个工作表。

使用列表名称作为工作表名称,将data.frames列表写入各个工作表。

代码语言:javascript
复制
require(openxlsx)
list_of_datasets <- list("Name of DataSheet1" = dataframe1, "Name of Datasheet2" = dataframe2)
write.xlsx(list_of_datasets, file = "writeXLSX2.xlsx")
票数 124
EN

Stack Overflow用户

发布于 2018-06-13 17:20:22

这里有很多不错的答案,但其中一些有点过时了。如果您想要将更多的工作表添加到单个文件中,那么这是我发现的适合我的方法。为清楚起见,以下是openxlsx 4.0版的工作流程

代码语言:javascript
复制
# Create a blank workbook
OUT <- createWorkbook()

# Add some sheets to the workbook
addWorksheet(OUT, "Sheet 1 Name")
addWorksheet(OUT, "Sheet 2 Name")

# Write the data to the sheets
writeData(OUT, sheet = "Sheet 1 Name", x = dataframe1)
writeData(OUT, sheet = "Sheet 2 Name", x = dataframe2)

# Export the file
saveWorkbook(OUT, "My output file.xlsx")

编辑

我现在已经尝试了几个其他的答案,实际上我真的很喜欢@Syed的,它没有利用openxlsx的所有功能,但如果你想要一个快速简单的导出方法,那可能是最简单的。

票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27713310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档