如何在DT::datatable中设置多个选项列表和扩展名

问题描述 投票:0回答:1

我尝试应用数据表选项和扩展来绘制。如果遵循参考,它可以工作,但当我组合/应用多个扩展时,ColVis 不起作用。有什么想法吗?

df %>% 
  datatable(., caption="Table 3.4.1 : Partial Matching Teams' Name.", 
            extensions=list('ColReorder','ColVis', list(FixedColumns=list(leftColumns=2))), 
            options=list(autoWidth=TRUE,
                         dom='C<"clear">lfrtip',
                         colVis=list(exclude=c(0, 1),
                         activate='mouseover'),
            colReorder=list(realtime=TRUE),
            scrollX=TRUE,
            scrollCollapse=TRUE))
r dt
1个回答
8
投票

根据DT手册与某些扩展相关的选项需要放置在命名列表中。如果在

options
属性中指定选项,则必须分配
NULL

datatable(.,extensions=list("ColReorder" = NULL,
                            "ColVis" = NULL,
                            "FixedColumns"=list(leftColumns=2))

由于

dom
属性不足而生成另一个错误。有关更多信息请参阅此链接
dom
中的每个字母都与表输出的指定元素链接。与
extension
关联的大写字母和与表格元素关联的小写字母 (
R
- ColReorder、
C
- ColVis、
T
- TableTools、
t
- table ,
i
- 表 info 等)。如果示例中缺少“R”,则 ColReorder 无法工作。将以下正确代码与添加的 TableTools 放在一起:

iris %>% 
  datatable(
    extensions = list("ColReorder" = NULL,
                      "ColVis" = NULL,
                      "TableTools" = NULL,
                      "FixedColumns" = list(leftColumns=2)), 
    options = list(autoWidth=TRUE,
                   oColReorder = list(realtime=TRUE),
                   oColVis = list(exclude=c(0, 1),   activate='mouseover'),
                   oTableTools = list(
                   sSwfPath = "//cdnjs.cloudflare.com/ajax/libs/datatables-tabletools/2.1.5/swf/copy_csv_xls.swf",
                   aButtons = list("copy","print",
                                   list(sExtends = "collection",
                                        sButtonText = "Save",
                                        aButtons = c("csv","xls")))),
               dom = 'CRTrilftp',
               scrollX = TRUE,
               scrollCollapse = TRUE))

升级! 由于 DT 已升级(v0.1.56),扩展

TableTools
ColVis
不再可用。根据新的教程,上述扩展可以通过
buttons
扩展实现。新版本的包更加一致,添加扩展比以前更容易:

 DT:::datatable(
    iris,
    escape=F,
    filter = "top",
    rownames= F,
    extensions = list("ColReorder" = NULL,
                      "Buttons" = NULL,
                      "FixedColumns" = list(leftColumns=1)),
    options = list(
                dom = 'BRrltpi',
                autoWidth=TRUE,
                lengthMenu = list(c(10, 50, -1), c('10', '50', 'All')),
                ColReorder = TRUE,
                buttons =
                  list(
                    'copy',
                    'print',
                    list(
                      extend = 'collection',
                      buttons = c('csv', 'excel', 'pdf'),
                      text = 'Download'
                    ),
                    I('colvis')
                  )
              )
    )
© www.soinside.com 2019 - 2024. All rights reserved.