R:将工作表附加到excel工作簿而不读取整个工作簿

时间:2018-03-08 20:33:48

标签: r excel xlsx readxl writexl

我有一个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分钟。

1 个答案:

答案 0 :(得分:1)

我通常使用openxlsx,但我不确定openxlsx是否有办法将工作表添加到Excel文件而无需先将Excel工作簿加载到R中。但是,使用xlsx包,可以添加新工作表而无需加载Excel文件。例如,如果您的文件是&#34; test.xlsx&#34;,那么您可以执行以下操作:

library(xlsx)

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

如果我需要在Excel文件中保存任何内容,我通常会尝试在R中执行所有操作,然后在最后编写需要进入Excel文件的内容。但是,如果需要添加到现有Excel文件,上面的代码提供了执行此操作的选项。