我正在使用闪亮的R包来开发我自己的web应用程序。
我有一个下载按钮,可以将数据导出到excel文件中。在excel文件中,有4个工作表,每个工作表中都有一个数据框。
例如,在sheet1中有dataTab1,在sheet2中有dataTab2,在sheet 3中有dataTab3,在sheet4中有dataTab4。
为此,我在shiny server.R中使用函数downloadHeader()。
这是我的代码:
输出$downloadTab

  filename ="Tab.xls",
  content = function(file) {



    #db <- paste(tmpdir,file,sep="/")
    channel <- odbcConnectExcel(xls.file = file,readOnly=FALSE)
    sqlSave(channel, tab1, tablename = "sheet1",rownames = F)
    sqlSave(channel,  tab2, tablename = "sheet2",rownames = F)
    sqlSave(channel, tab3, tablename = "sheet3",rownames = F)
    sqlSave(channel, tab4, tablename = "sheet4",rownames = F)
    odbcClose(channel)

    },
    contentType="application/xls"

)

代码运行得很好,当我单击按钮“downloadTab”时,表格结果将被下载到一个excel文件中。问题是此代码在Windows服务器上运行,但在Linux服务器上不运行。
你知道怎么解决这个问题吗?你知道如何在Linux服务器上导出excel文件吗?

最佳答案

下面的代码将允许您使用包openxlsx下载一个空的excel文件,即使在linux闪亮的服务器中也是如此。

  output$downloadData <- downloadHandler(
      filename = "myFile.xlsx",
      content = function(file) {
          wb <- createWorkbook()
          # Do more stuff here
          saveWorkbook(wb, file, TRUE)
      }
  )

07-26 09:38