Кто-нибудь пытался использовать обработчик загрузки в R Shiny для загрузки только что созданного файла Excel с помощью XLConnect?
В ui.R есть ничем не примечательная строка:
downloadButton('downloadData', 'Download')
В сервере .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 и без проблем с созданием файла excel с помощью XLConnect. Но когда я запускаю код, как указано выше, я получаю следующую ошибку в браузере Chrome:
IllegalArgumentException (Java): расширение файла "file1b683b9323bc" не поддерживается! Разрешены только *.xls и *.xlsx!
Насколько я вижу, XLConnect не может записать во временный файл.
Кто-нибудь получил решение или обход?
Один из вариантов - сохранить файл в определенном месте, а затем создать ссылку для загрузки, указывающую на него. Тем не менее, это не очень Shiny-esque, поскольку многие пользователи могут вызвать хавок.
Большое спасибо
Марк