数据表的按钮扩展

时间:2018-10-17 12:22:19

标签: r shiny dt

我正在尝试向数据表中添加“ copy”,“ excel”,“ pdf”,“ print”和“ csv”等按钮,但是在运行代码后,我只会得到“ copy”,“ csv” ','pdf'和'print',并且按钮不起作用。请问我做错了什么?我拥有最新版本的Shiny。这是下面的代码:

 output$Tab<-renderDataTable(
        server=FALSE,
        data.frame(
          "People"=people,
          "Industries"=industries,
          "Schools"=schools,
         "Hospitals"=hospitals),
        extensions=c('Buttons','AutoFill','ColReorder','KeyTable','Responsive'),options=list(dom='Bfrtip',buttons=list(
          'copy','pdf','csv','excel','print'),autoFill=TRUE,colReorder=TRUE,keys=TRUE)

      )

1 个答案:

答案 0 :(得分:1)

extensionsoptionsdatatable()而非renderDataTable()的参数。请参阅DataTables扩展article中的示例。您只需将data.frameoptionsextensions包装在datatable()中,您的代码即可使用。

但是,单独构建datatable然后在渲染器中调用该对象可能更具可读性。

此外,根据shiny DT的文档,建议您使用renderDT而不是renderDataTable以避免与闪亮的同名功能发生冲突。

我可能会这样:

library(DT)

my_table <- DT::datatable(
    data.frame(
        "People"=people,
        "Industries"=industries,
        "Schools"=schools,
        "Hospitals"=hospitals),
    extensions=c('Buttons','AutoFill','ColReorder','KeyTable','Responsive'),
    options=list(dom='Bfrtip',
                 buttons=list('copy','pdf','csv','excel','print'),
                 autoFill=TRUE,
                 colReorder=TRUE,
                 keys=TRUE)
)

output$Tab<-renderDT(
    server=FALSE,
    my_table
)