下载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) } )