使用R将工作表添加到Excel文件

时间:2016-01-11 21:25:49

标签: r

我有一个包含多张纸的Excel文件。我想保存一个数据框并将其作为第一张表插入到文件中。如何使用xlsx包执行此操作?

谢谢!

3 个答案:

答案 0 :(得分:8)

@ Navid的回答对于包xlsx来说是正确的,但不幸的是它有一个java依赖,这导致我在读/写大量数据时遇到很多问题(10,000多行,所以甚至没有那么大!)。

我建议使用openxlsx包,这样可以避免java依赖。如果您想将更多工作表添加到单个文件中,那么这就是我觉得适合我的方法。 @ eipi10关于worksheetOrder()的评论是一个很好的提示,但你需要每次使用类似rev(1:3)的内容来改变该参数(假设文件中有三个工作表)。

为清楚起见,这是openxlsx版本4.0

的工作流程
# 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)

# Reorder worksheets
worksheetOrder(OUT) <- c(2,1)

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

答案 1 :(得分:7)

这是一个老帖子和迟到的答案,但是当我的搜索结果弹出时,我正在写信给别人。

可以在单独的Excel工作表中编写,但是您需要多次编写write.xlsx(),并且每次都使用选项append=TRUE 像这样:

write.xlsx(df$sheet1, file = "myfile.xlsx", sheetName="sh1", append=TRUE)
write.xlsx(df$sheet2, file = "myfile.xlsx", sheetName="sh2", append=TRUE)
write.xlsx(df$sheet3, file = "myfile.xlsx", sheetName="sh3", append=TRUE)

答案 2 :(得分:0)

如果要在现有Excel文件的新“工作表”中添加data.frame, Navid的答案是有效的。这里再举一个例子。 R: Append a worksheet to an excel workbook without reading the entire workbook

简而言之:

library(xlsx)
write.xlsx(your_dataframe, "test.xlsx", sheetName="New_Sheet", append=TRUE)

其中“ your_dataframe”是数据框,“ test.xlsx”是现有Excel文件的路径,“ New_sheet”是要添加到现有Excel文件的新数据表的名称。