“ addWorksheet(wb,“ sheet1”)中的错误:第一个参数必须是工作簿”

时间:2018-11-09 06:49:02

标签: r rstudio xlsx r-xlsx openxlsx

我在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”)中的错误:第一个参数必须为   工作簿。

该错误将如何解决?

5 个答案:

答案 0 :(得分:2)

我对此也有同样的问题。我做了以下工作,并解决了这个问题。也许它可以解决您的问题。

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

答案 1 :(得分:1)

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

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

install.packages("openxlsx")

library(openxlsx)

答案 2 :(得分:1)

为我工作的作品将其卸载并重新安装(或卸载)rio库

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

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

library(openxlsx)

答案 3 :(得分:0)

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

图书馆(openxlsx) 图书馆(里约) 库(rJava)

答案 4 :(得分:0)

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

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