下载excel文件闪亮的linux

时间:2016-01-26 08:30:52

标签: r linux excel download shiny

我正在使用R包Shiny来开发我自己的Web应用程序。

我有一个下载按钮,允许我将数据导出到Excel文件中。在excel文件中,有4张纸,每张纸都有一个数据框。

例如,在sheet1中有dataTab1,在sheet2中有dataTab2,在表3中有dataTab3,在sheet4中有dataTab4。

为此,我在闪亮的server.R。

中使用函数downloadHeader()

这是我的代码:

输出$ downloadTab< - downloadHandler(

  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" 

)

代码运行良好,当我点击按钮&#34; downloadTab&#34;表结果下载到一个excel文件中。问题是这个代码在Windows服务器上运行,但它不能在Linux服务器上运行。

你知道如何解决这个问题吗?你知道如何在Linux服务器上导出excel文件吗?

1 个答案:

答案 0 :(得分:2)

以下代码将允许您使用包openxlsx下载空的Excel文件,即使在Linux Shiny服务器中也是如此。

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