【问题标题】:"Error in addWorksheet(wb, "sheet1") : First argument must be a Workbook"“addWorksheet(wb, "sheet1") 中的错误:第一个参数必须是工作簿”
【发布时间】:2019-04-12 17:56:08
【问题描述】:

我在 R 中使用 ‘openxlsx’ 包。ٰ我想在 xlsx 文件中添加一些数据。我使用以下代码创建工作簿并在其中添加工作表。

 wb=createWorkbook()
 addWorksheet(wb,"sheet 1")
 writeData(wb,sheet = 1,"From",startCol = 1,startRow = 1)
 writeData(wb,sheet = 1,"To",startCol = 2,startRow = 1)
 writeData(wb,sheet = 1,"From",startCol = 1,startRow = 2)
 writeData(wb,sheet = 1,"From",startCol = 1,startRow = 2)
 saveWorkbook(wb,"file.xlsx",overwrite = TRUE)

这段代码运行了很长时间,但最近,我遇到了这个错误

addWorksheet(wb, "sheet 1") 中的错误:第一个参数必须是 工作簿。

如何解决这个错误?

【问题讨论】:

  • 您共享的代码在我的情况下不会引发任何错误。您共享的错误消息表明未创建工作簿wb。也许你跳过了执行代码的第 1 行。
  • 我没有跳过那一行。实际上,这运行良好,但最近失败了。但不知道为什么?
  • str(wb) 显示什么?
  • 正式类 'jobjRef' [package "rJava"] 有 2 个插槽 ..@ jobj : ..@ jclass: chr "org/apache/poi/xssf/usermodel/XSSFWorkbook"

标签: r xlsx openxlsx r-xlsx


【解决方案1】:

我也有同样的问题。我做了以下事情,它解决了这个问题。也许它可以解决你的问题。

  • 关闭 R 或 RStudio。
  • 确保您当前的工作目录没有任何其他文件或文件夹。换句话说,在运行 createWorkbook() 之前,您要保存 xlsx 的路径是空的。如果您已经在其中保存了任何文件,只需将其复制并粘贴到其他位置即可。
  • 从头开始再次运行您的代码。

【讨论】:

  • 这对我有用,但很高兴知道是什么导致了问题
【解决方案2】:

我遇到了同样的问题,我只是卸载了包,重新安装并重新加载它,它工作(无需关闭 R studio):

detach("package:openxlsx", unload=TRUE)

install.packages("openxlsx")

library(openxlsx)

【讨论】:

  • 为我工作而无需重新安装
【解决方案3】:

为我工作卸载它并重新安装(或卸载)库 rio

detach("package:rio", unload=TRUE)
detach("package:openxlsx", unload=TRUE)

install.packages("openxlsx", "rio")

library(openxlsx)

【讨论】:

    【解决方案4】:

    当我尝试重新运行代码以导出 XLSX 文件时遇到了类似的问题。为了让我的代码运行良好,我只是确保将工作簿 (wb) 从我的全局环境中删除。我认为在您的代码之前插入以下行可能会有所帮助。

      rm(list=deparse(substitute(wb)),envir=.GlobalEnv)
    

    【讨论】:

      【解决方案5】:

      遇到了同样的问题,从脚本中删除了 library(xlsx) 和 library(readxl),现在运行没有问题。现在在脚本中使用以下库作为上下文:

      library(openxlsx)
      library(rio)
      library(rJava)
      

      【讨论】:

        【解决方案6】:

        我可以通过禁用 XLSX 包来修复这个错误

        detach("package:xlsx", unload = TRUE)
        

        【讨论】:

          猜你喜欢
          • 2021-10-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多