首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以闪亮的格式导出选定的行。

以闪亮的格式导出选定的行。
EN

Stack Overflow用户
提问于 2022-09-22 16:14:43
回答 1查看 26关注 0票数 0

我正在编写一个闪亮的应用程序,允许用户输入CSV文件并将其转换为特定的XML规范(OPML,RSS提要的标准)。

我当前的问题是统一使用自定义格式选择特定行、导出的能力。我可以使用我编写的自定义函数( downloadButton() )将所有内容与标准的generate_opml()一起导出,该函数可以转换成适当的XML格式:

代码语言:javascript
复制
  output$downloadOPML <- downloadHandler(
    filename = function() {
      paste('journal-rss-', Sys.Date(), '.opml', sep='')
    },
    content = function(con) {
      opml <- generate_opml(db)
      cat(saveXML(opml), file = con)
    }
  )

但是,我希望能够只导出选定的行,这似乎是最简单的DT::datatable()。这可以很容易地导出为CSV和其他几种格式:

代码语言:javascript
复制
output$user_table <- renderDataTable({
      datatable(
        db,
        selection = "none",
        filter="top",
        rownames = FALSE,
        extensions = c("Buttons", "Select"),

        options = list(
          select = TRUE,
          dom = 'Blfrtip',
          buttons =
            list('copy', 'print', list(
              extend = 'collection',
              buttons = list(
                list(extend = 'csv', filename = "File", title = NULL,
                     exportOptions = list(modifier = list(selected = TRUE))),
                list(extend = 'excel', filename = "File", title = NULL,
                     exportOptions = list(modifier = list(selected = TRUE)))),
              text = 'Download'
            ))
        ),
        class = "display"
      )

因此,我的问题是,是否可以使用DT::datatable()导出自定义文件类型?还是有一种方法可以使downloadButton()只导出选定的行?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-22 16:24:49

所选行的索引在input$ID_rows_selected中,其中ID是datatable的输出id。所以你可以:

代码语言:javascript
复制
  output$downloadOPML <- downloadHandler(
    filename = function() {
      paste('journal-rss-', Sys.Date(), '.opml', sep='')
    },
    content = function(con) {
      dat <- db[input$user_table_rows_selected, ]
      opml <- generate_opml(dat)
      cat(saveXML(opml), file = con)
    }
  )

但是,如果使用Select扩展,我不确定这是否有效。也许和server=FALSE在一起。请查收。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73817814

复制
相关文章

相似问题

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