* Hallo, ich versuche, mehrere CSV-Datei aus einer einzigartigen Excel-Datei herunterladen. Ich möchte die verschiedenen Blätter aus der Excel-Datei herunterladen (mit nur einem Download-Button). Ich verstehe nicht, warum eine for() Schleife nicht funktioniert, und ich kann nicht sehen, wie kann ich tun? Wenn jemand weiß, ..Laden Sie mehrere CSV-Dateien mit einer Taste (Downloadhandler) mit R Shiny
Der Punkt ist differents csv-Dateien, die in dem "wb" -Liste sind (wb [1], wb [2] ...) Dank herunterladen. Hier ist mein Code, der mit dem dritten Blatt zum Beispiel arbeitet (und sorry für mein schlechtes Englisch): ui:
library(readxl)
library(shiny)
library(XLConnect)
fluidPage(
titlePanel("Export onglets en CSV"),
sidebarLayout(
sidebarPanel(
fileInput('fichier1','Choisissez votre fichier excel :',
accept = ".xlsx"),
fluidPage(
fluidRow(
column(width = 12,
numericInput("sheet","Indiquez l'onglet à afficher :",min = 1, value = 1),
tags$hr(),
textInput('text',"Indiquez le nom des fichiers :"),
tags$hr(),
h4("Pour télécharger les fichiers .csv :"),
downloadButton("download","Télécharger")
)
)
)),
mainPanel(
tabsetPanel(
tabPanel('Importation',
h4("Fichier de base:"),
dataTableOutput("contents"))
)
)
)
)
Server:
function(input,output){
#Création data :
data <- reactive({
inFile<- input$fichier1
if (is.null(inFile)){
return(NULL)
}else{
file.rename(inFile$datapath,
paste(inFile$datapath,".xlsx", sep =""))
wb = loadWorkbook(paste(inFile$datapath,".xlsx",sep=""))
lst = readWorksheet(wb,sheet = getSheets(wb))
list(wb = wb, lst = lst)
}
})
#Sortie de la table :
output$contents <- renderDataTable({
data()$wb[input$sheet]
},options = list(pageLength = 10))
#Téléchargement :
output$download <- downloadHandler(
#for (i in 1:input$sheet){
filename = function(){
paste(input$text,"_0",3,".csv",sep = "")
},
content = function(file){
write.table(data()$wb[3],file,
sep = ';', row.names = F, col.names = T)
}
#}
)
}
ich denke nicht, dass for-Schleife funktionieren kann. Der Weg zu gehen wäre es zu zippen ich denke, .. – BigDataScientist
Ja die For-Schleife funktioniert nicht, deshalb lege ich ein # vor. Ich suche Code oder Beispiel mit zip() für diese Situation seit heute Morgen, aber ich habe nichts gefunden .. und/oder ich verstehe nicht, wie man verschiedene Dateien in eine zip und laden Sie es. Haben Sie eine Idee/einen Code/ein Beispiel oder eine Website, um die ZIP-Funktion zu erklären? – MBnnn