#r #csv #shiny
#r #csv #блестящий
Вопрос:
Мой вопрос кажется довольно простым, но по какой-то причине я пока не нашел ответа. 🙁
Я создаю блестящее приложение и хочу использовать кнопку загрузки для вычисленных матриц. Есть ли какой-либо способ использовать write.csv для загрузки файла .csv с несколькими вкладками (для разных матриц), чтобы пользователю не приходилось загружать 3-4 разных файла?
Заранее благодарю
Комментарии:
1. CSV-файлы не могут иметь вкладок, но вы можете использовать пакеты типа
XLConnect
илиxlsx
для записи непосредственно в файл Excel, в том числе на разных листах.2. И если файлы Excel не подходят, вы можете написать несколько CSV,
zip
их и экспортировать zip-файл пользователю.3. Или используйте что-то, что может обрабатывать непрямоугольные данные, например
json
. Хотя это, возможно, менее удобно для пользователя, в зависимости от вашей аудитории.4. Другая альтернатива
XLConnect
иxlsx
:openxlsx
. В противном случае я поддерживаю предложенное @Benjamin использованиеzip
.
Ответ №1:
Добавление ко всем комментариям XLConnect — хорошая идея. Код обработчика загрузки будет:
library(XLConnect)
output$dwnld <- donwloadHandler(
filename = "xyz.xlsx"
},
content = function(file) {
wb <- loadWorkbook(file, create = TRUE)
createSheet(wb, name="x")
createSheet(wb, name="y")
writeWorkSheet(wb, data=df_x, sheet=x, header=TRUE)
writeWorkSheet(wb, data=df_y, sheet=y, header=TRUE)
saveWorkbook(wb)
}
)