R 下载包含多张图纸作为数据帧的xls文件
我正在使用R包来开发我自己的web应用程序 我有一个下载按钮,可以将数据导出到excel文件中。在excel文件中,有4个工作表,每个工作表中都有一个数据框 例如,在表1中有dataTab1,在表2中有dataTab2,在表3中有dataTab3,在表4中有dataTab4 为此,我使用Shining server.R中的函数downloadHeader() 我用了两种方法来做这件事 方法1:使用R软件包xlsx 但这对我不起作用。也许我遗漏了什么。 你知道吗 方法2:使用RODBC包R 下载包含多张图纸作为数据帧的xls文件,r,excel,shiny,xlsx,rodbc,R,Excel,Shiny,Xlsx,Rodbc,我正在使用R包来开发我自己的web应用程序 我有一个下载按钮,可以将数据导出到excel文件中。在excel文件中,有4个工作表,每个工作表中都有一个数据框 例如,在表1中有dataTab1,在表2中有dataTab2,在表3中有dataTab3,在表4中有dataTab4 为此,我使用Shining server.R中的函数downloadHeader() 我用了两种方法来做这件事 方法1:使用R软件包xlsx 但这对我不起作用。也许我遗漏了什么。 你知道吗 方法2:使用RODBC包 输出$d
输出$downloadTab我找到了问题的解决方案 首先,您必须调用XLConnect和RODBC包。 之后,您可以使用以下示例:
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)
}
output$downloadTab <- downloadHandler(
filename ="Tab.xls",
content = function(file) {
write.csv(Compartiments_simulation_sans_changement, file="Compartiments-simulation_sans_changement.csv")
write.csv(Esperance_simulation_sans_changement, file="Esperance-simulation_sans_changement.csv")
write.csv(Compartiments_simulation_avec_changement, file="Compartiments-simulation_avec_changement.csv")
write.csv(Esperance_simulation_avec_changement, file="Esperance-simulation_avec_changement.csv")
channel <- odbcConnectExcel(xls.file = file,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/xls"
)
output$downloadTab当您尝试修复xlsx
时,“我已经尝试修复”,您是否尝试使用library(XLConnect)
?当您告诉downloadHeader()
时,它的意思是downloadHandler
或smthing?您好,巴坦切克。是的,我尝试使用library(XLConnect)。我键入downloadHeader()时出错。正确的词是downloadHandler(),您好,非常感谢!很明显,我已经fogotten使用软件包XLConnect,因为当我现在使用它时,一切都正常!
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"
)
output$downloadTab <- downloadHandler(
filename ="Tab.xls",
content = function(file) {
write.csv(Compartiments_simulation_sans_changement, file="Compartiments-simulation_sans_changement.csv")
write.csv(Esperance_simulation_sans_changement, file="Esperance-simulation_sans_changement.csv")
write.csv(Compartiments_simulation_avec_changement, file="Compartiments-simulation_avec_changement.csv")
write.csv(Esperance_simulation_avec_changement, file="Esperance-simulation_avec_changement.csv")
channel <- odbcConnectExcel(xls.file = file,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/xls"
)