R Shiny将两个数据帧导出到同一个excel表中的两个表中

问题描述 投票:0回答:1

我正在尝试将两个不同的数据帧导出到R Shiny的同一个excel工作簿中的两个表中。我已经尝试了许多不同的解决方案,但似乎无法让任何工作。

  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)
    }
  )

仅使用“Sheet2”保存ALEGR()数据帧,不保存“Sheet1”。

如果它是.csv或.xlsx,对我来说并不重要,但我似乎无法工作。简单地说,我希望exportData()在sheet1上,而ALEGR()在同一工作簿的sheet2上。

谢谢!

r excel shiny export
1个回答
1
投票

这应该可以通过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)
    } 
)
© www.soinside.com 2019 - 2024. All rights reserved.