在 Datatables Tabletools 中从导出中排除列
Posted
技术标签:
【中文标题】在 Datatables Tabletools 中从导出中排除列【英文标题】:Exclude column from export in Datatables Tabletools 【发布时间】:2015-12-06 20:31:25 【问题描述】:我的数据表有以下初始化:
$(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 插件为我提供了用于导出的 Flash 按钮。我想排除某个类.no-export
的表列。我知道mColumns
选项,但我无法让它按类别申请列。我在这里Excluding last column of jQuery DataTables.net TableTools 阅读了答案,其中 Joe Jonston 通过设置建议了这种可能性:
"aoColumnDefs": [ "mColumns": false, "aTargets": ["no-export"] ],
我尝试以各种方式应用代码,但我的理解中缺少一些东西。
【问题讨论】:
【参考方案1】:解决方案
请参阅this answer 了解可能的解决方案。
您可以使用mColumns
定义一个函数,该函数将返回所有列的索引,这些列的类no-export
分配给标题中的th
元素。
$('.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();
]
);
【讨论】:
谢谢,我只是在尝试这个,但似乎代码实际上导出了相反的内容,类为.no-export
的列 - 但几乎就在那里......
@jtheman,你是对的,它恰恰相反,我已经更正了代码。
太棒了! :) 谢谢!以上是关于在 Datatables Tabletools 中从导出中排除列的主要内容,如果未能解决你的问题,请参考以下文章
DataTables TableTools 插件 - 如何在 Codeigniter 中配置 sSwfPath 路径?
jQuery dataTables - TableTools:导出时隐藏行和列
将 TableTools 用于 R Shiny 中的 DataTables 用于 renderDataTable
DataTables/TableTools - 单击一行时是不是可以获得所选行的准确列表?