R Shiny Export Records en Excel Workbook nombrado por User

Intento escribir una aplicación Shiny solo para practicar La aplicación toma una hoja de Excel, toma un número de identificación de la hoja de Excel y ejecuta esos ID contra una database para devolver algunos detalles adicionales de la database

Solo para este ejemplo, he importado los datos y he contado el número de filas en el set de datos. Luego paso este set de datos a la function get_DW que devolverá un dataframe y quiero contar el número de loggings en el dataframe devuelto. Este paso ocurre cuando el usuario presiona el button Go

Cuando ejecuto mi aplicación shiny, las importaciones de datos y el número de loggings se countn. También logré que devuelva loggings de la database y los cuente.

Tengo problemas para exportarlos usando la output$downloadData , no pasa nada. Presiono el button get el cuadro de dialog para save pero cuando ingreso el nombre del file y presiono save, nada se guarda en la carpeta

¿Alguien puede ver en qué parte del código podría estar yendo mal? He visto la pregunta Descargando file de Excel de XLConnect con R Shiny pero no usa la biblioteca que quiero y no estoy muy claro sobre la explicación dada

He actualizado el código a continuación para usar el Dataset del iris. Es un poco complicado pero reproduce la falta de ahorro

Código del server

 # Server Code server <- shinyServer(function(input, output) { # Create a reactive expression which will grab the data # We pass that to the outputs reactive element to the outputs data <- reactive({ iris }) # Return the number of records output$Inputnum <- renderText({ paste(nrow(data()), "records to be checked") }) # Data returned by Database en_data <- eventReactive(input$go, { get_DW(data()) }) # Return the number of records output$Outputnum <- renderText({ paste(nrow(en_data()), "records matched") }) output$downloadData<- downloadHandler( filename = function() { "name.xlsx" }, content = function(file) { tempFile <- tempfile(fileext = ".xlsx") write.xlsx(en_data(), tempFile) file.rename(tempFile, file) }) }) 

Código de UI

 shinyUI( fluidPage( titlePanel("POC"), sidebarLayout( sidebarPanel( fileInput(inputId = 'file1',label = 'Choose An Excel File', accept=c('.xlxs')), radioButtons(inputId = "radio", label = "Search By:", choices = list("option 1" = 1, "option 2" = 2, "option 3" = 3), selected = 1), hr(), fluidRow(column(1, actionButton("go", "Get Records")), column(2,offset = 2, downloadButton('downloadData', 'Download')), br() )), mainPanel( verbatimTextOutput("Inputnum"), br(), verbatimTextOutput("Outputnum") ) ) )) 

ARCHIVO R GLOBAL

 #in global.R options (scipen=FALSE,stringsAsFactors=FALSE) library(xlsx) library(RODBC) library(dplyr) get_DW <- function (mydf) { mydf } 

Me encontré con este mismo problema hace un par de semanas. Intenta ejecutar tu aplicación de forma externa en lugar de localmente. Esto funcionó para mí usando tu código de muestra.

enter image description here