5

我使用 Datatables 的 TableTools 插件对保存 CSV 进行了一些测试。

我注意到它可以保存一切。它不关心您是否过滤了行或隐藏了某些列。

有没有办法只保存可见列中的数据?

4

3 回答 3

14

您想mColumns在定义按钮时使用。

文档中的一个示例:

$(document).ready( function () {
    $('#example').dataTable( {
        "sDom": 'T<"clear">lfrtip',
        "oTableTools": {
            "aButtons": [
                {
                    "sExtends": "csv",
                    "sButtonText": "Special columns",
                    "mColumns": [ 0, 1, 4 ]
                },
                {
                    "sExtends": "csv",
                    "sButtonText": "Visible columns",
                    "mColumns": "visible"
                }
            ]
        }
    } );
} );

这定义了两个将导出到 CSV 文件的按钮。第一个标签为Special columns,只会导出 columns 0,1,4。第二个按钮,标记Visible columns将导出所有可见的列。

mColumns参数在文档中是这样描述的:

该参数可以是值为“all”、“visible”、“hidden”或“sortable”的字符串,也可以是具有要导出的列索引的整数数组。

此功能在 1.10 版本中并不新。如果您尚未升级,它也可以在旧版本中使用。

于 2014-05-13T14:17:46.813 回答
5

只是为了完成......在最后一个版本的 DataTables 上,它略有不同(这里是文档):

$(document).ready(function() {
  $('#example').DataTable( {
      dom: 'Bfrtip',
      buttons: [
          {
              extend: 'print',
              exportOptions: {
                  columns: ':visible'
              }
          },
          'colvis'
      ],
      columnDefs: [ {
          targets: -1,
          visible: false
      } ]
  } );
} );
于 2016-09-20T12:22:15.690 回答
0

只是为了添加更多选项,我的场景需要这些选项,这可能对某人有用。

将多个参数传递给列,并使用not()排除具有类的列:

extend: 'csv',                   
exportOptions: {
   columns: ':not(.noShow):visible'
}
于 2018-09-11T14:05:47.570 回答