R:将工作表附加到 Excel 工作簿,而不阅读整个工作簿

标签 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 分钟。

最佳答案

我通常使用 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/

相关文章:

python - 将新列写入现有的 xlsx 文件

java - 尝试用密码保护中等大小的 XLSX 工作簿 (~=80MB) 时,Apache POI 抛出 OOM 错误

R - 一次更改 1 行值的函数

sql - 每天自动将数据从 Excel 导入 PostgreSQL

VBA 电子邮件签名代码证明

javascript - 使用 VBA 的 XHR 请求和 JSON 响应

r - 在 Excel 中复制具有格式的工作表

r - 将权重矩阵应用于现有图表

r - install.packages() Rstudio 服务器 AWS ubuntu 错误

r - 从时间戳提取日期的最简单方法