从 Datatables Tabletools 中的导出中排除列

Exclude column from export in Datatables Tabletools

我对我的数据进行了以下初始化tables:

$(document).ready(function() {
    $('.datatable').dataTable({
        "dom": 'T<"clear">lfrtip',
        "tableTools": {
            "sSwfPath": "/js/plugins/dataTables/swf/copy_csv_xls_pdf.swf",
        },
        "columnDefs": [{
            "targets": 'no-sort',
            "orderable": false
        }]

    });
});

DT 的 TableTools 插件为我提供了用于导出的闪光按钮。我想排除某个 class .no-export 的 table 列。我知道 mColumns 选项,但我无法通过 class 申请专栏。我在这里阅读了答案 Excluding last column of jQuery DataTables.net TableTools Joe Jonston 通过设置提出了可能性:

"aoColumnDefs": [{ "mColumns": false, "aTargets": ["no-export"] }],

我尝试过以各种方式应用代码,但我的理解中缺少一些东西。

SOLUTION

有关可能的解决方案,请参阅 this answer

您可以使用 mColumns 定义一个函数,该函数将 return 具有 class no-export 的所有列的索引分配给 th 元素 header.

$('.datatable').dataTable({
    "dom": 'T<"clear">lfrtip',
    "tableTools": {
        "sSwfPath": "/js/plugins/dataTables/swf/copy_csv_xls_pdf.swf",
        "aButtons": [{
          "sExtends": "csv",
          "mColumns": function (settings) {
               var api = new $.fn.dataTable.Api( settings );
               return api.columns(":not(.no-export)").indexes().toArray();
          }
        }]
    }
});