我有一个包含多张纸的Excel文件。我想保存一个数据框并将其作为第一张表插入到文件中。如何使用xlsx包执行此操作?
谢谢!
答案 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文件的新数据表的名称。