首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从XLConnect下载Excel文件

从XLConnect下载Excel文件
EN

Stack Overflow用户
提问于 2014-01-27 14:43:33
回答 1查看 5.3K关注 0票数 15

有没有人尝试过使用using中的下载处理程序来下载一个使用XLConnect新创建的Excel文件?

在ui.R有一条平淡无奇的路线:

代码语言:javascript
复制
downloadButton('downloadData', 'Download')

在server.R中有一个处理程序:

代码语言:javascript
复制
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不能写入临时文件。

有人找到解决办法或解决办法了吗?

一种选择是将文件保存在特定位置,然后创建指向它的下载链接。然而,这并不是非常闪亮

非常感谢

马库斯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-27 17:50:22

尝试将这个用于content(...)函数;它对我有效.

代码语言:javascript
复制
content = function(file){
      fname <- paste(file,"xlsx",sep=".")
      wb <- loadWorkbook(fname, create = TRUE)
      createSheet(wb, name = "Sheet1")
      writeWorksheet(wb, c(1:3), sheet = "Sheet1") # writes numbers 1:3 in file
      saveWorkbook(wb)
      file.rename(fname,file)
    }

问题是file是一个没有扩展名的随机生成的临时文件,而saveWorkbook(...)需要.xlsx扩展。因此,这只是将.xlsx附加到file并将其用于所有XLConnect操作,然后将最终文件重命名为原始名称(例如,去掉扩展名)。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21383748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档