Bootstrap DataTable 从导出中排除某些可见列

Bootstrap DataTable exclude certain visible columns from export

我可以使用以下内容将动态选择的可见列导出为 pdf。但是我也希望能够排除某些可见列(按钮列)。我该怎么做?

buttons: [{
  extend: 'csv',
  orientation: 'landscape',
  pageSize: 'LEGAL',
  text: 'Export as CSV',
  exportOptions: {
    columns: ':visible'
  }
}, {
  extend: 'pdfHtml5',
  orientation: 'landscape',
  pageSize: 'LEGAL',
  text: 'Export as PDF',
  exportOptions: {
  columns: ':visible'
}, {
  extend: 'colvis',
  text: 'Show/Hide Columns'
}]

关键是向导出选项中的列 属性 添加一个方法,过滤列是否可见以及列是否不属于您不想导出的列。 idx 变量是列索引。

这里的工作示例:https://jsfiddle.net/L06yu0vz/1/

$(document).ready(function() {

  // Do not export these columns
  var hideFromExport = [0,1,2];

  var table = $('#example').DataTable({
    dom: 'Bfrtip',
    buttons: [{
      extend: 'copyHtml5',
      exportOptions: {
        columns: function ( idx, data, node ) {
          var isVisible = table.column( idx ).visible();
          var isNotForExport = $.inArray( idx, hideFromExport ) !== -1;
          return isVisible && !isNotForExport ? true : false; 
        }
      }
    }, 'colvis']
  });
});