【问题标题】:R Shiny export two dataframes into two sheets in same excel sheetR Shiny 将两个数据框导出到同一张 excel 表中的两张表中
【发布时间】:2019-03-30 01:52:22
【问题描述】:

我正在尝试将两个不同的数据框导出到 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 not found 错误。

  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 上。

谢谢!

【问题讨论】:

  • 在第二个块中,尝试包装 list() 以返回两个调用:list(write.xlsx(...), write.xlsx(...)),因为最后一行似乎正在运行。

标签: r excel shiny export


【解决方案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)
    } 
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-15
    • 1970-01-01
    • 2020-11-30
    • 1970-01-01
    • 2015-12-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多