有人尝试过在R Shiny中使用下载处理程序通过XLConnect下载新建的Excel文件吗?
在ui.R中有这个不起眼的行:
downloadButton('downloadData', 'Download')
在server.R文件中有一个处理程序:
output$downloadData <- downloadHandler(
filename = function() { "output.xlsx" },
content = function(file){
wb <- loadWorkbook(file, create = TRUE)
createSheet(wb, name = "Sheet1")
writeWorksheet(wb, c(1:3), sheet = "Sheet1") # writes numbers 1:3 in file
saveWorkbook(wb)
}
)
我可以轻松下载 .csv 文件,并使用 XLConnect 创建 Excel 文件,但当我按照上述代码运行时,会在 Chrome 浏览器中出现以下错误:
IllegalArgumentException(Java):不支持文件扩展名“file1b683b9323bc”!仅允许使用 *.xls 和 *.xlsx 文件!
据我所知,XLConnect 无法写入临时文件。
有没有人有解决方案或解决方法?
一种选择是将文件保存到特定位置,然后创建一个指向它的下载链接。然而,这不太 Shiny-esque,因为多个用户会引起混乱。
非常感谢
Marcus