Ошибка в addWorksheet (wb, sheet1): первым аргументом должна быть рабочая книга

Я использую пакет ‘openxlsx’ в R. ٰ Я хочу добавить некоторые данные в файл 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, «лист 1»): первым аргументом должна быть рабочая книга.

Как будет решена эта ошибка?


person Alvi    schedule 09.11.2018    source источник
comment
Код, которым вы поделились, в моем случае не вызывает ошибок. Сообщение об ошибке, которым вы поделились, указывает на то, что книга wb не была создана. Возможно, вы пропустили выполнение первой строки кода.   -  person Rage    schedule 09.11.2018
comment
Я не пропустил эту строчку. На самом деле, это работало хорошо, но недавно не удалось. но не знаю почему?   -  person Alvi    schedule 09.11.2018
comment
Что показывает str(wb)?   -  person user2554330    schedule 09.11.2018
comment
Формальный класс jobjRef [пакет rJava] с 2 слотами .. @ jobj: ‹externalptr› .. @ jclass: chr org / apache / poi / xssf / usermodel / XSSFWorkbook   -  person Alvi    schedule 09.11.2018


Ответы (5)


У меня была такая же проблема с этим. Я сделал следующее, и проблема устранилась. Может быть, это решит вашу.

  • Закройте R или RStudio.
  • Убедитесь, что в вашем текущем рабочем каталоге нет других файлов или папок. Другими словами, путь, по которому вы хотите сохранить xlsx, пуст до запуска createWorkbook (). Если вы уже сохранили там какой-либо файл, просто скопируйте и вставьте его в другое место.
  • Снова запустите свой код с самого начала.
person R User Scientist    schedule 09.11.2018
comment
Это сработало для меня, но было бы здорово узнать, что вызывает проблему - person MatthewR; 04.03.2019

У меня была та же проблема, и я просто выгрузил пакет, переустановил его и перезагрузил, и он сработал (без необходимости закрывать R studio):

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

install.packages("openxlsx")

library(openxlsx)
person Emmanuelle Chevallier    schedule 23.10.2019
comment
У меня работало без переустановки - person Fierr; 03.07.2020

У меня работает выгрузите его и переустановите (или удалите) библиотеку rio

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

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

library(openxlsx)
person Captain Tyler    schedule 15.11.2019

Обнаружена та же проблема, из скрипта удалены библиотека (xlsx) и библиотека (readxl), и теперь она работает без проблем. Теперь в скрипте для контекста используются следующие библиотеки:

библиотека (openxlsx) библиотека (rio) библиотека (rJava)

person Matthew J De Pasquale    schedule 19.01.2021

У меня возникла аналогичная проблема, когда я попытался повторно запустить код для экспорта файла XLSX. Чтобы мой код работал хорошо, я просто убедился, что рабочая книга (wb) была удалена из моей глобальной среды. Я думаю, что вставка следующей строки прямо перед кодом может помочь.

  rm(list=deparse(substitute(wb)),envir=.GlobalEnv)
person James Silva    schedule 22.03.2021