当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《使用R将工作表添加到Excel文件》经验,为你挑选了2个好方法。

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

谢谢!



1> EcologyTom..:

@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")


这是关于如何编写多个工作表的一个很好的总结。您必须创建工作簿对象,添加所有工作表,然后将其写出。因为我需要添加到现有文件中,所以我必须阅读xlsx文件,添加工作表,然后保存。当我进行更多处理时,我必须再次阅读-添加-保存。这个故事的士气:请注意,如果不先读取整个文件就无法添加工作表(即创建wrokbook对象-在您的情况下为空,在其他情况下-从磁盘读取)。

2> 小智..:

这是一个老帖子和迟到的答案,但是当我的搜索结果弹出时,我正在写信帮助其他人.

可以在单独的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)

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有