【问题标题】:R DT package button to download files does not include display tablesR DT包按钮下载文件不包括显示表
【发布时间】:2018-04-01 00:20:23
【问题描述】:

这是一个简单的例子。 假设我正在查看表格,并且我想下载不包括 Sepal.Length 列的表格。

我该怎么办?我尝试切换 Sepal.Length 列,然后单击 excel,但它仍然为我提供了整个数据。我不想要它。有什么办法可以操纵它吗?

也许我不熟悉它在后端的操作方式,在我使用行重新排序扩展或搜索/过滤表之后,下载的文件就是表显示的内容。所以当我隐藏列时我想要类似的东西。

当我的表中有太多列并且有时我不需要所有列时,这很有用。

library(shiny)
shinyApp(
  ui = fluidPage(DT::dataTableOutput('tbl')),
  server = function(input, output) {
    output$tbl = DT::renderDataTable(
      iris, extensions = "Buttons",
      options = list(dom = "Blfrtip", 
        buttons = list('copy', 'excel', 'print', 'colvis'))
    )
  }
)

非常感谢您的帮助。

【问题讨论】:

    标签: r datatable shiny shinydashboard dt


    【解决方案1】:

    您可以使用input$tbl_columns_selectedinput$tbl_rows_selected

    在这里您可以选择行和列(注意:要选择列,请单击 DT 下方的标签
    如果您只想在列上进行选择,请删除 input$tbl_rows_selected 并仅设置 target = 'column'

    library(shiny)
    library(xlsx)
    library(DT)
    
    shinyApp(
      ui = fluidPage(
          DT::dataTableOutput('tbl')
          ,downloadButton("downloadData",label ="Download")
      ),
    
      server = function(input, output) {
        output$tbl = DT::renderDataTable(iris, selection = list(target = 'row+column'))
    
        myFilteredData <- reactive({
          df <- iris[input$tbl_rows_selected, input$tbl_columns_selected]
          if (length(input$tbl_columns_selected) == 1) {
            df <- as.data.frame(df)
            colnames(df) <- colnames(iris)[input$tbl_columns_selected]
          }
          df
        })
    
        output$downloadData <- downloadHandler(
          filename = function() {paste("test.xlsx")},
          content = function(file) {
            write.xlsx(myFilteredData(),file, row.names=FALSE)
          })
      }
    )
    

    【讨论】:

    • 您好,非常感谢您的回复。我已经考虑过您使用 checkBoxGroupInput 来决定表格列的想法,但我正在寻找的实际上是 DT 包中的一些功能或参数,以便我可以在数据表函数中对其进行操作。不过,我仍然感谢您的帮助。
    猜你喜欢
    • 2021-03-05
    • 2021-06-22
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-27
    • 1970-01-01
    相关资源
    最近更新 更多