【问题标题】:write.xlsx error in Error in .jnew and j.check in R.jnew 中的错误和 R 中的 j.check 中的 write.xlsx 错误
【发布时间】:2015-01-03 14:03:32
【问题描述】:

我试图使用 write.xlsx 编写一个包含 523370 行和 3 列的数据帧

write.xlsx(x = dataframe, file = "dataframe.xlsx",
+ sheetName = "dataframe1", row.names = FALSE)

但我收到此错误:

    Error in .jnew("org/apache/poi/xssf/usermodel/XSSFWorkbook") : 
  Java Exception <no description because toString() failed>.jnew("org/apache/poi/xssf/usermodel/XSSFWorkbook")<S4 object of class "jobjRef">

我检查了这些问题:

但是那改错误改成:

Error in .jcheck(silent = FALSE) :Java Exception <no description because toString() failed>.jcall(row[[ir]], "Lorg/apache/poi/ss/usermodel/Cell;", "createCell", as.integer(colIndex[ic] - 1))<S4 object of class "jobjRef">

【问题讨论】:

  • 很遗憾没有答案,但另一种方法是尝试从包 openxlsx github.com/awalker89/openxlsx 中的 write.xlsx
  • 感谢您的评论@ChristofKluß。它没有找到 write.xlsx 作为命令。但是我遇到的问题是数据框的体积,我必须拆分数据框。并使用WriteXLS将它们保存在不同的工作表中。
  • 我注意到当你同时使用 dplyr 和 xlsx 包时会发生这种情况,那时可能会有冲突。

标签: r excel dataframe


【解决方案1】:

我遇到了同样的问题,重新启动 R 就成功了。

如果你使用RStudio,重启 R 的快捷键是 Ctrl + Shift + F10 (PC) 或 Command + Shift + F10 (Mac)。

【讨论】:

  • 我之前也遇到过类似的错误,重新启动也对我有用。
【解决方案2】:

尝试使用 openxlsx 包中的 write.xlsx 而不使用 java。

openxlsx::write.xlsx(x = dataframe, file = "dataframe.xlsx")

【讨论】:

  • openxlsx 也有很多与 XLSX 包相同的功能,包括添加多个工作表的能力。 openxlsx 不会遇到那些奇怪的 java 错误。
【解决方案3】:

使用这一行:

openxlsx::write.xlsx(x = dataframe, file = "dataframe.xlsx")

它对我有用...

【讨论】:

    【解决方案4】:

    当我使用相对路径时,我得到了同样的错误。您可以尝试使用绝对路径。

    • R 版本 3.4.4 (2018-03-15)
    • 平台:x86_64-pc-linux-gnu(64 位)
    • 运行于:Ubuntu 16.04.4 LTS

    【讨论】:

    • 欢迎来到 SO。看看格式化选项。这将帮助您发布更好的答案/问题。
    【解决方案5】:

    我遇到了类似的问题,改用 write.csv(),然后将 csv 文件保存为 .xlsx 从 excel。成功了。

    【讨论】:

      【解决方案6】:

      您始终可以使用read.csv(),然后如果问题仍然存在,只需保存它和一个 xlsx 文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-17
        • 2013-02-08
        • 2018-01-31
        • 2013-07-06
        • 2015-11-04
        • 2014-10-22
        相关资源
        最近更新 更多