Я использую пакет R Shiny для разработки собственного веб-приложения.
У меня есть кнопка загрузки, которая позволяет мне экспортировать данные в файл Excel. В файле excel 4 листа и в каждом из них есть фрейм данных.
Например, в Sheet1 есть dataTab1, в sheet2 есть dataTab2, в листе 3 есть dataTab3, а в sheet4 есть dataTab4.
Для этого я использую функцию downloadHeader () в shiny server.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
output $ 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, набрав: library (RODBC)
Ты хоть представляешь, почему это так?
xlsx
Я пытался исправить, вы пробовали использоватьlibrary(XLConnect)
? - person Batanichek   schedule 22.01.2016downloadHeader()
, это означаетdownloadHandler
или что-то еще? - person Batanichek   schedule 22.01.2016