Carlos Junior
Carlos Junior

Reputation: 67

Make my existent Excel file available for users to download in shiny app

In my app, users should insert some data from an Excel file, but I want to make it possible for them to download one (TesteR.xlsx) in their computer and use it as an example. I have tried to apply this solution but it didn't work, when I click the button it downloads a kinda weird file.

library(shiny)

ui <- fluidPage(
  downloadButton("downloadOP", label = "Download")
)

server <- function(input, output){
  output$downloadOP <- downloadHandler(
    filename = "ph1data",
    content = function(file) {
      file.copy("www/TesteR.xlsx", file)
    }
  )
}

shinyApp(ui, server)

I also included the file in a www folder like suggested in the other question, but maybe I am missing something.

Any help would be very much appreciated!

Upvotes: 0

Views: 350

Answers (1)

Billy34
Billy34

Reputation: 2174

Make sure your www folder is in the same directory as your app.r or server.r/ui.r files. It must be readable by the shiny server.

As you don't state how your app is started/served (from your computer, on a server, what kind of server, using shiny/server, on shinyapps.io, shinyproxy, ...) further advice won't be very useful.

I will also add the file extension to filename = "ph1data.xlsx".

If you add a A tag to your UI, does it work ? (target="self" prevent opening a new tab)

ui <- fluidPage(
  downloadButton("downloadOP", label = "Download"),
  tags$a("Download", href="TesteR.xlsx", target="self")
)

If you put and image (eg test.jpg) in your www folder and add an IMG tag to your UI, does it show the image ?

ui <- fluidPage(
  downloadButton("downloadOP", label = "Download"),
  tags$a("Download", href="TesteR.xlsx", target="self", class="btn btn-primary"),
  tags$img(src="test.jpg")
)

Upvotes: 1

Related Questions