jQuery dataTables - TableTools:导出时隐藏行和列

jQuery dataTables - TableTools: hide row and columns while export

本文关键字:隐藏 dataTables TableTools jQuery      更新时间:2023-09-26

如何使用表工具从数据表导出时排除某些列和行。

| id | data      | date           | Status |
|----|-----------|----------------|--------|
| 1  | some data | october 2014   | ok     |
| 2  | some data | september 2014 |        |

我想隐藏状态列和状态不为"确定"的行。解决此问题的任何提示将不胜感激。

据我所知,没有一个"神奇"的选择可以解决这两个问题。解决每个问题的选项似乎相互排斥(如果有人可以反驳这一点,那就太好了(。但是我找到了一个解决方案(为了避免冗余代码,我只在复制按钮上显示它(:

var table = $("#example").DataTable({
    dom: 'T<"clear">lfrtip',
    tableTools: {
      sSwfPath: "http://cdn.datatables.net/tabletools/2.2.3/swf/copy_csv_xls.swf",
      aButtons: [
            {
                sExtends : "copy",
                mColumns : [0, 1, 2], 
                fnInit : function( nButton, oConfig ) {
                    $(nButton).on('mousedown', function() {
                        table.column(3).search('ok').draw();
                    });
                    $(nButton).on('mouseup', function() {
                        table.column(3).search('').draw();
                    });
                },
                oSelectorOpts : { filter: 'applied', order: 'current' },
            }
    ]}
});

解释

mColumns : [0, 1, 2] -> 仅导出iddatadate

fnInit ->能够在初始化按钮时对按钮执行某些操作

$(nButton).on('mousedown', function() { ->筛选状态为"确定"的行

$(nButton).on('mouseup', function() { -> 导出完成后取消设置"确定"过滤器

oSelectorOpts : { filter: 'applied', order: 'current' } ->将表格工具设置为仅按用户显示的顺序导出筛选的行。

使用mousedown/mouseup的原因是上述不适用于click或按钮功能fnComplete

将此功能添加到所有按钮,例如 xlscsvpdfprint我认为print按钮有问题。据我所知,它早些时候通过遵循按钮说明存在"问题"。不知道最近是否修复了这个问题。