Я использую пакет R Shiny для разработки собственного веб-приложения.Загрузить файл xls с несколькими листами в качестве фреймов данных Shiny R
У меня есть кнопка загрузки, которая позволяет мне экспортировать данные в файл excel. В файле excel есть 4 листа, и в каждом из них есть кадр данных.
Например, на листе 1 имеется dataTab1, на листе2 имеется dataTab2, на листе 3 - данныеTab3, а на листе4 - dataTab4.
Для этого я использую функцию downloadHeader() в блестящем сервере.R.
Я использовал два метода для этого.
Метод 1: с помощью пакета R XLSX
output$downloadTab <- downloadHandler(
filename = "dataxls.xlsx",
content = function(file) {
#creation of the workbook
dataxls=createWorkbook(file)
#creation of the sheets
dataTabs1=createSheet(wb=dataxls,sheetName="Compartiments-simulation_sans_changement")
dataTabs2=createSheet(wb=dataxls,sheetName="Esperance-simulation_sans_changement")
dataTabs3=createSheet(wb=dataxls,sheetName="Compartiments-simulation_avec_changement")
dataTabs4=createSheet(wb=dataxls,sheetName="Esperance-simulation_avec_changement")
#add the dataframes to the sheets
writeWorksheet(dataxls, dataTab1, sheet = "Compartiments-simulation_sans_changement")
writeWorksheet(dataxls, dataTab2, sheet = "Esperance-simulation_sans_changement")
writeWorksheet(dataxls, dataTab3, sheet = "Compartiments-simulation_avec_changement")
writeWorksheet(dataxls, dataTab4, sheet = "Esperance-simulation_avec_changement")
saveWorkbook(dataxls,file)
}
)
Проблема заключается в том, что у меня есть следующее сообщение об ошибке: Ошибка в createWorkbook (файла): Неизвестный формат C: \ Users \ Baramova \ AppData \ Local \ Temp \ Rtmpmyqyeh \ fileafc6d2b5998.xlsx
Я попытался это исправить, используя следующий пример:
content = function(file) {
fname = paste(file,"xlsx",sep=".")
wb = loadWorkbook(fname, create = TRUE)
createSheet(wb, name = "Sheet1")
writeWorksheet(wb, c(1:3), sheet = "Sheet1")
saveWorkbook(wb)
file.rename(fname,file)
}
Но это не ж Орк для меня. Может быть, я что-то пропускаю. У вас есть идеи?
Способ 2: с использованием пакета RODBC
выход $ downloadTab < - downloadHandler (
filename ="Tab.xls",
content = function(fname) {
tmpdir <- tempdir()
db <- paste(tmpdir,fname,sep="/")
channel <- odbcConnectExcel(xls.file = db,readOnly=FALSE)
sqlSave(channel, Compartiments_simulation_sans_changement, tablename = "Compartiments_simulation_sans_changement")
sqlSave(channel, Esperance_simulation_sans_changement, tablename = "Esperance_simulation_sans_changement")
sqlSave(channel, Compartiments_simulation_avec_changement, tablename = "Compartiments_simulation_avec_changement")
sqlSave(channel, Esperance_simulation_avec_changement, tablename = "Esperance_simulation_avec_changement")
odbcClose(channel)
},
contentType="application/csv"
)
Проблема заключается в том, что функция odbcConnectExcel() не признается, даже если я назвал пакет RODBC, набрав : библиотека (RODBC)
у вас есть какие-либо идеи, почему это так
, когда вы пытались исправить 'xlsx'«Я пытался исправить», вы пытались use'library (XLConnect)'? – Batanichek
Когда вы сказали 'downloadHeader()' это означает 'downloadHandler' или smthing else? – Batanichek
Привет, Батаничек. Да, я пытался использовать библиотеку (XLConnect). – Mily