首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据radioButton闪亮下载csv或excel

根据radioButton闪亮下载csv或excel
EN

Stack Overflow用户
提问于 2019-06-14 15:24:00
回答 1查看 351关注 0票数 0

根据用户输入下载为excel或csv格式。该代码仅适用于radioButtons中的预选值。如下所示,它适用于csv,因为selected = "csv"。如果将其更改为xlsx,则只对xlsx有效。用户应该能够选择,这两个选项应该是可能的。

也许值被缓存了,我需要以某种方式强制更新。

代码语言:javascript
运行
复制
library(shiny)

ui <- fluidPage(
    h4("Download data"),
    wellPanel(
        fluidRow(
            column(4, radioButtons("dl_data_file_type", "Format",
                                   choices = c(excel = "xlsx",
                                               csv = "csv"),
                                   selected = "csv")),
            column(5),
            column(3, downloadButton("dl_data_dwnld_bttn"))
        )))


server <- function(input, output) {
    output$dl_data_dwnld_bttn <- {
        downloadHandler(
            filename = stringr::str_c(Sys.Date(), " Palim.", input$dl_data_file_type),
            content = function(file){
                x <- iris

                if ( input$dl_data_file_type == "xlsx")  {
                    writexl::write_xlsx(x, file)}
                else if ( input$dl_data_file_type == "csv") {
                    readr::write_csv(x, file)}

            })}}


shinyApp(ui = ui, server = server)

错误是excel文件仍然以.csv结尾,无法用excel打开。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-14 17:38:37

您在filename参数中使用了反应值。在这种情况下,您必须将filename设置为函数:

代码语言:javascript
运行
复制
filename = function(){
  stringr::str_c(Sys.Date(), " Palim.", input$dl_data_file_type)
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56593372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档