Shiny下载excel文件

时间:2016-09-12 11:43:37

标签: r excel shiny

我在Linux实例上设置了shiny服务器 我有一个名为templates的文件夹,它有一个excel文件模板 用户进入网页并按下下载按钮,理论上他们应该能够在本地计算机上的任何地方下载模板。

我看过帖子Shiny download file not working

中的代码

当我尝试运行它时,我的Windows笔记本电脑上的文件被保存到my downloads,它被称为NA而不是名称Template.xlsx

我的两个问题是

  • 是否可以提示用户在本地保存文件的位置
  • 是否可以将其默认为XLSX

伪代码是

ui <- shinyUI(fluidPage(

 # Side Panel with Options
  fluidRow(
    column(4, wellPanel(
  id = "leftPanel",
  div(
    id = "Header",
    h3("Options"),
    tags$hr()
  ),
  div(
    h4("1.  Download the empty excel template"), 
    downloadButton("downloadBtn", "Download Excel Template")
      )
)))))

服务器

# Define server logic required
server <- shinyServer(
  function(input, output) {

output$downloadBtn <- downloadHandler(
  filename = function() {
    paste(input$filenames, sep='')
  },
  content = function(file) {
    myfile <- srcpath <- '/home/foo/Save to Database/templates/Template.xlsm'
    file.copy(myfile, file)
  }
  )})

1 个答案:

答案 0 :(得分:1)

您正在使用paste(input$filenames, sep=''),但您没有在UI部分中定义输入$ filenames。如果用"Template.xlsm"

替换该行,它应该有效