下载excel文件shiny的linux

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

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

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

为此,我正在使用函数downloadHeader()在shiny的server.R中。

这是我的代码:

输出$ 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" ) 

代码工作得很好,当我点击“downloadTab”button时,表格结果被下载到一个excel文件中。 问题是这个代码在Windows服务器上工作,但它不能在Linux服务器上工作。

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

下面的代码可以让你使用openxlsx软件包下载一个空的excel文件,即使在一个linux Shiny服务器上。

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