1

如何在使用 TableTools 从 DataTables 导出时排除某些列和行。

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

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

4

1 回答 1

1

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

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]-> 仅导出id,datadate

fnInit-> 能够在按钮初始化时对其进行操作

$(nButton).on('mousedown', function() {-> 过滤状态为“ok”的行

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

oSelectorOpts : { filter: 'applied', order: 'current' }-> 将 tabletools 设置为仅按照用户显示的顺序导出过滤的行。

mousedown使用/的原因mouseup是上面的click或按钮功能不起作用fnComplete

将此功能添加到所有按钮,例如xlscsv和。我认为按钮有问题。据我所知,它早先按照按钮说明出现了“问题”。不知道最近有没有修复。pdfprintprint

于 2014-12-04T12:01:10.673 回答