"Error in addWorksheet(wb, "sheet1") : 第一个参数必须是工作簿"

"Error in addWorksheet(wb, "sheet1") : First argument must be a Workbook"

我在 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)

这段代码长期以来运行良好,但最近,我遇到了这个错误

Error in addWorksheet(wb, "sheet 1") : First argument must be a Workbook.

如何解决这个错误?

我遇到了同样的问题。我做了以下操作并解决了问题。也许它可以解决你的问题。

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

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

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

install.packages("openxlsx")

library(openxlsx)

对我有用卸载它并重新安装(或卸载)库 rio

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

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

library(openxlsx)

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

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

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

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

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

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