【问题标题】:Cannot insert R dataframe into an existing Excel file without overwriting无法在不覆盖的情况下将 R 数据框插入现有 Excel 文件
【发布时间】:2020-05-24 01:42:02
【问题描述】:

我正在尝试将 Rstudio 中的 R dataframe 插入到已经存在的 Excel 工作表中,而不会覆盖整个文件。我已经尝试过this 解决方案,但是指令loadWorkbook 给了我这个错误:

Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, : org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException

有了这个回溯:

6.
stop(structure(list(message = "org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException", call = .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, .jcast(if (inherits(o, "jobjRef") || inherits(o, "jarrayRef")) o else cl, "java/lang/Object"), .jnew("java/lang/String", ...
5.
.jcheck(silent = FALSE)
4.
.jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, .jcast(if (inherits(o, "jobjRef") || inherits(o, "jarrayRef")) o else cl, "java/lang/Object"), .jnew("java/lang/String", method), j_p, j_pc, use.true.class = TRUE, evalString = simplify, ...
3.
.jrcall(x, name, ...)
2.
wbFactory$create(inputStream)
1.
loadWorkbook("Recon Metro Fuels JR B VN Ene 2019 V2.xlsx")

我正在使用这些库:

  • pdftools,用于从 PDF 中提取文本。
  • openxlsx& xlsx,用于 Excel 操作。
  • dplyr,用于%>% 运算符。

有关 Excel 的更多信息,大小:29MB,是 .xlsx 文件格式。

这是我如何做的代码:

#load exel file
old_data<- readWorkbook("Recon Metro Fuels JR B VN Ene 2019 V2.xlsx", sheet = "Raw BAC VN CON FIREFOX");
#Combines the Excel sheet with the new updated sheet
new_data<-bind_rows(old_data, pdf_refined);

wb<- loadWorkbook("Recon Metro Fuels JR B VN Ene 2019 V2.xlsx")

是什么导致了这个错误? 还有其他方法吗?

【问题讨论】:

  • 您使用哪个软件包来处理 excel 文件?错误中提到 java 让我觉得它是 XLConnect,这对于它的 java 依赖有点臭名昭著......我最终放弃了它并切换到 openxlsx。永不回头(除非有一次我不得不处理“.xls”文件……)
  • @dario 我正在使用 openxlsx 和 xlsx 来处理我的 Excel 文件。我还用我正在使用的库更新了帖子。
  • 那么它必须是'xlsx'。我建议避免使用它并仅使用openxlsx。您加载两个库“xlsx”“openxlsx”是否有原因?
  • @dario 谢谢,我不记得我为什么使用那个库,删除它解决了错误。但是rsutdio又报错了,不知道是更新问题还是把问题写在cmets中。

标签: r excel dataframe rstudio


【解决方案1】:

问题是与库冲突:openxlsx & xlsx

所以最后我删除了xlsx

【讨论】:

    猜你喜欢
    • 2018-04-06
    • 2013-12-11
    • 1970-01-01
    • 1970-01-01
    • 2020-08-30
    相关资源
    最近更新 更多