【发布时间】:2018-03-08 20:33:47
【问题描述】:
我有一个 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 分钟。
【问题讨论】:
-
为了清楚起见,您所做的工作都在 excel 中,所以您不能只在 R 中完成吗?如果您想保留工作簿中的所有内容,据我所知,您必须阅读整个工作簿才能添加页面并重写。
-
感谢您的快速响应,獾。我在 excel 中创建的 26 mb 文件具有重要的条件格式,尝试在 R 中创建整个工作簿本身将是一项艰巨的任务。我确实想保留工作簿中的所有其他内容,所以如果你说的是真的,那么我想我必须阅读整个工作簿。我怀疑这一点,但非常感谢您的确认。
-
我不是 R - Excel 交互方面的专家,一旦我去 R,我就断绝了与 Excel 的联系,所以我错的可能性不大。这只是我的经验!不过对于这么小的文件来说,2 分钟是相当不可思议的。
-
明白了。是的,既然您提到它,26 mb 的文件并不是需要 2 分钟才能读取的大文件。也许是对openxlsx端的限制。
标签: r excel xlsx readxl writexl