Ошибка в (функция (классы, fdef, mtable): невозможно найти унаследованный метод для функции 'getLastRow' для подписи '' Рабочая книга ', "символ"' - PullRequest
0 голосов
/ 23 сентября 2018

Получение сообщения об ошибке, как указано в заголовке для функции getlastrow, Pl помогает с проблемой. Попытка найти последнюю строку данных, чтобы изменить данные следующих дней под ней. Пожалуйста, помогите мне решить эту проблему.

enter code here

  wb <- createWorkbook()

  addWorksheet(wb,"sheet1")

  writeData(wb,sheet = "sheet1",iris)

  openxlsx::saveWorkbook(wb, "Repository.xlsx", overwrite = T)

  wb1 <- openxlsx::loadWorkbook("Repository.xlsx")

  lastrow<-XLConnect::getLastRow(wb,"sheet1")

  lastrow <-as.data.frame( XLConnect::getLastRow(object = wb1,"sheet1"))

  colnames(lastrow) <- "row_num"

  lastrow <- lastrow$row_num

1 Ответ

0 голосов
/ 23 сентября 2018

ОК. Теперь я понял, что ваш пример полностью воспроизводим.

Сообщение об ошибке не проясняет ситуацию, но кажется, что openxlsx::saveWorkbook создает соединение, которое не делаетблизко.В среде R нет объекта подключения, который можно было бы закрыть, и я не вижу никаких функций в этом пакете для закрытия соединений.

Но это не позволяет XLConnect::getLastRow получить доступ к файлу.Если вы закроете сеанс R после создания файла, а затем начнете новый сеанс и запустите код, начиная с wb1 <- openxlsx::loadWorkbook("Repository.xlsx"), он работает.

Возможно, к сожалению, не самый удовлетворительный ответ.В документации openxlsx вы можете найти информацию о том, как закрыть соединение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...