我有一个 26 mb 的 Excel 工作簿,我正在尝试向其中添加 42 kb 的工作表。使用 openxlsx 包,我有以下代码:
wb_object <- loadWorkbook(to_name2)
addWorksheet(wb_object, "New Data")
writeData(wb_object, sheet = "New Data", m_data)
saveWorkbook(wb_object, to_name2, overwrite = TRUE)
我注意到这段代码的执行时间大约为 2 分钟。我相信 R 正在读取整个 26 MB 文件,然后附加 42 kb 工作表。有没有办法将 42 kb 工作表附加到 26 mb 工作簿,而不必读取 26 mb 文件?每次运行可节省 2 分钟。
最佳答案
我通常使用 openxlsx
,但我不确定 openxlsx
是否有办法将工作表添加到 Excel 文件,而无需先将 Excel 工作簿加载到 R 中。但是,使用 xlsx
包,您可以添加新工作表而无需加载 Excel 文件。例如,如果您的文件是“test.xlsx”,那么您可以执行以下操作:
library(xlsx)
write.xlsx(new_data, "test.xlsx", sheetName="New_Sheet", append=TRUE)
如果我需要在 Excel 文件中保存任何内容,我通常会尝试在 R 中完成所有操作,然后在最后将需要写入 Excel 文件的内容写入其中。但是,如果您需要添加到现有的 Excel 文件,上面的代码提供了执行此操作的选项。
关于R:将工作表附加到 Excel 工作簿,而不阅读整个工作簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49181980/