R Shiny экспортирует два кадра данных в два листа в одном листе Excel - PullRequest
0 голосов
/ 30 марта 2019

Я пытаюсь экспортировать два разных кадра данных в два листа в одной книге Excel от R Shiny. Я пробовал несколько разных решений, но не могу заставить их работать.

  output$downloadData <- downloadHandler(
    filename = "My_File.xlsx",
    content = function(file) {
      wb = createWorkbook()

      addWorksheet(wb, "Sheet 1")
      addWorksheet(wb, "Sheet 2")

      writeData(wb, "Sheet 1", exportData(), startCol = 1, rowNames = FALSE)
      writeData(wb, "Sheet 2", ALEGR(), startCol = 1, rowNames = FALSE)

      saveWorkbook(wb, "My_File.xlsx")
    }
  )

Выдает ошибку 404. Не найдено.

  output$downloadData <- downloadHandler(
    filename = "test.xlsx",
    content = function(file) {
      write.xlsx(exportData(), file, sheetName="sheet1", row.names=FALSE)
      write.xlsx(ALEGR(), file, sheetName="sheet2", append=TRUE, row.names=FALSE)
    }
  )

Сохраняет данные ALEGR() только с «Sheet2», без «Sheet1».

Для меня не имеет значения, что это .csv или .xlsx, но я не могу заставить их работать. Проще говоря, я бы хотел, чтобы exportData() был на листе 1, а ALEGR() - на листе 2 той же рабочей книги.

Спасибо!

1 Ответ

1 голос
/ 30 марта 2019

Это должно быть достигнуто с library(xlsx):

output$downloadData <- downloadHandler(
    filename = "My_File.xlsx",
    content = function(file) {
        wb <- createWorkbook()

        sheet_1 <- createSheet(wb, "exportData()")

        sheet_2 <- createSheet(wb, "ALEGR()")

        addDataFrame(
            exportData(),
            sheet         = sheet_1,
            row.names     = FALSE
        )

        addDataFrame(
            ALEGR(),
            sheet         = sheet_2,
            row.names     = FALSE
        )

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