使用按钮集合导出选定的行在数据表中不起作用

Export selected rows with buttons collection not working in dataTables

我正在尝试仅从数据表中导出选定的行。通过将扩展选项设置为 csv,我可以成功地将选定的行导出到 csv 文件,如下面的代码所示。

buttons: [
    'colvis',
    'selectAll',
    'selectNone',
    {
        extend: 'csv',
        text: 'Export Selected',
        exportOptions: {
            columns: ':visible:not(.not-exported)',
            modifier: {
                 selected: true
            }
        },
        title: 'Data export'
    }
],

但我想要一个下拉菜单(csv、复制、打印),我可以从中选择将所选行导出到。我尝试在下面的代码中使用集合。但它导出所有可见行。有人请帮忙

buttons: [
    'colvis',
    'selectAll',
    'selectNone',
    {
        extend: 'collection',
        text: 'Export Selected',
        buttons: ['copy','csv','print'],
        exportOptions: {
            columns: ':visible:not(.not-exported)',
            modifier: {
                 selected: true
            }
        },
        title: 'Data export'
    }
],

您只需使用 rows: '.selected' 即可定义 "selected only"。但是:即使您使用的是集合,您仍然需要为每个按钮提供设置。即

buttons: ['copy','csv','print'],

应该是

buttons: [
  { extend :'copy',
    exportOptions : {
     columns: ':visible:not(.not-exported)',
     rows: '.selected'
  }
  ...
]

您可以通过重用简单文字来减少代码量

var exportOptions = {
  columns: ':visible:not(.not-exported)',
  rows: '.selected'
}

工作示例代码将像这样结束:

buttons: [
  'colvis',
  'selectAll',
  'selectNone',
  {
    extend: 'collection',
    text: 'Export Selected',
    buttons: [
      { extend : 'copy',
        exportOptions: exportOptions
      },
      { extend : 'csv',
        exportOptions: exportOptions
      },
      { extend : 'print',
        exportOptions: exportOptions
      }
    ]   
  }
]

这里有一个演示 -> https://jsfiddle.net/youn7zm4/