Добавление кадра данных на вновь созданный лист в файле Excel с несколькими листами с использованием openxlsx - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь создать и заполнить лист Excel. Сначала я загружаю огромный xlsx-файл со многими листами (test4.xlsx). После этого я создаю пустой лист и затем заполняю его сравнительно большим DataFrame (5000 строк и 80 столбцов). Первые три строки моего кода работают безупречно! В конце я пытаюсь сохранить книгу, но, к сожалению, получаю следующую ошибку (см. Ниже).

wb = openxlsx::loadWorkbook("test4.xlsx")
openxlsx::addWorksheet(wb, "New2")
openxlsx::writeDataTable(wb, sheet = "New2", out, startRow = 12)
openxlsx::saveWorkbook(wb, file = "test4.xlsx", overwrite = T)

**Error in fill$fillFg : $ operator is invalid for atomic vectors**

Я попытался повторить то же самое с пустой книгой, все четыре строки работают отлично. У вас есть идея, что приводит к появлению ошибки? Вы уже работали с многолистовыми файлами Excel, пытаясь добавить или обновить определенный лист. Пакет XLSX также не работает, я получаю сообщение об ошибке:

**Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl,  : 
  java.lang.OutOfMemoryError: Java heap space**

Вывод команды traceback:

traceback ()

5: .self$createFillNode(style)
4: .self$updateStyles(this.sty)
3: .self$preSaveCleanUp()
2: wb$saveWorkbook()
1: openxlsx::saveWorkbook(wb, file = "test4.xlsx", overwrite = T)
...