R Shiny将两个 Dataframe 导出到同一Excel工作表中的两个工作表中

brc7rcf0  于 2023-01-18  发布在  其他
关注(0)|答案(1)|浏览(95)

我试图从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)
    }
  )

仅保存带有“Sheet 2”的ALEGR() Dataframe ,不保存带有“Sheet 1”的ALEGR() Dataframe 。
它是.csv还是.xlsx对我来说并不重要,但我似乎无法让任何一个工作,简单地说,我希望exportData()位于同一工作簿的sheet 1上,ALEGR()位于sheet 2上。
谢谢!

8yoxcaq7

8yoxcaq71#

这应该可以通过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)
    } 
)

相关问题