Datatables 在jQuery数据表中从导出中排除列

Datatables 在jQuery数据表中从导出中排除列,datatables,Datatables,我正在使用jQuery datatable 1.10.11及其导出按钮功能,如下所述: 我想跳过导出到excel文件的最后一列,因为该列中有编辑/删除按钮。我的列是动态生成的,因此我不能使用以下方法: $('#reservation').DataTable({ dom: 'Bfrtip', buttons: [ { extend: 'excel', text: 'Export Search Results',

我正在使用jQuery datatable 1.10.11及其导出按钮功能,如下所述:

我想跳过导出到excel文件的最后一列,因为该列中有编辑/删除按钮。我的列是动态生成的,因此我不能使用以下方法:

    $('#reservation').DataTable({
    dom: 'Bfrtip',
    buttons: [
        {
            extend: 'excel',
            text: 'Export Search Results',
            className: 'btn btn-default',
            exportOptions: {
                columns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
            }
        }
    ]
});

我知道这个问题被问了多次,但没有一个对我有用,可能是版本问题。

尝试使用CSS选择器,排除
列的最后一列

$('#保留')。数据表({
dom:'Bfrtip',
按钮:[
{
扩展:“excel”,
文本:“导出搜索结果”,
类名:“btn btn默认值”,
出口选择:{
列:'th:not(:last child)'
}
}
]
});
您可以添加一个类:

<th class='notexport'>yourColumn</th>
Javascript部分:

$(document).ready(function() {
$('#example').DataTable( {
    dom: 'Bfrtip',
    buttons: [
        {
            extend: 'print',
            exportOptions: {
                // columns: ':visible' or
                columns: 'th:not(:last-child)'
            }
        },
        'colvis'
    ],
    columnDefs: [ {
        targets: -1,
        visible: false
    } ]
} );
})

以及要包含的js文件:

https://code.jquery.com/jquery-3.3.1.js
https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js
https://cdn.datatables.net/buttons/1.5.2/js/dataTables.buttons.min.js
https://cdn.datatables.net/buttons/1.5.2/js/buttons.print.min.js
https://cdn.datatables.net/buttons/1.5.2/js/buttons.colVis.min.js
希望这对你有帮助。
谢谢。

我只是想把这个加进去,因为只有在您还没有包括其他内容(如可见列)的情况下,接受的答案才可以排除

要仅包括除最后一列之外的可见列,以便可以将其与列可见性按钮结合使用,请使用

$('#reservation').DataTable({
    dom: 'Bfrtip',
    buttons: [
    {
        extend: 'excel',
        text: 'Export Search Results',
        className: 'btn btn-default',
        exportOptions: {
            columns: ':visible:not(:last-child)'
        }
    }]
});
如果要显式添加自己的类:

    $('#reservation').DataTable({
    dom: 'Bfrtip',
    buttons: [
    {
        extend: 'excel',
        text: 'Export Search Results',
        className: 'btn btn-default',
        exportOptions: {
            columns: ':visible:not(.notexport)'
        }
    }]
});    

用于Excel、csv和pdf

dom: 'lBfrtip',
buttons: [
    {
        extend: 'excelHtml5',
        text: '<i class="fa fa-file-excel-o"></i> Excel',
        titleAttr: 'Export to Excel',
        title: 'Insurance Companies',
        exportOptions: {
            columns: ':not(:last-child)',
        }
    },
    {
        extend: 'csvHtml5',
        text: '<i class="fa fa-file-text-o"></i> CSV',
        titleAttr: 'CSV',
        title: 'Insurance Companies',
        exportOptions: {
            columns: ':not(:last-child)',
        }
    },
    {
        extend: 'pdfHtml5',
        text: '<i class="fa fa-file-pdf-o"></i> PDF',
        titleAttr: 'PDF',
        title: 'Insurance Companies',
        exportOptions: {
            columns: ':not(:last-child)',
        },
    },
]
dom:'lBfrtip',
按钮:[
{
扩展:“excelHtml5”,
文本:“Excel”,
titleAttr:“导出到Excel”,
标题:“保险公司”,
出口选择:{
列:':not(:last child)',
}
},
{
扩展:“csvHtml5”,
文本:“CSV”,
titleAttr:“CSV”,
标题:“保险公司”,
出口选择:{
列:':not(:last child)',
}
},
{
扩展:“pdfHtml5”,
文本:“PDF”,
标题:“PDF”,
标题:“保险公司”,
出口选择:{
列:':not(:last child)',
},
},
]

借用@Felipe Castilho的话,他给出了正确的答案和所有学分。 如果要使用“colvis”选项,即要显示隐藏列并相应打印。在这种情况下,请执行以下操作:

<th class='notexport'>yourColumn</th>

同样,代码直接指向@Felipe,他给出了一个很好的答案

,老实说,这是大多数人都在寻找的答案。它更具动态性,允许您只向不想导出的列添加一个类,这对于许多用例来说都很好。当您有多个导出选项时,这也可以让您更好地控制。@是的,我同意这一点。非常适合我的情况非常感谢!!对于代码:
列:':可见:不(.notexport)
<th class='notexport'>yourColumn</th>
  $('#reservation').DataTable({
    dom: 'Bfrtip',
       buttons: [
       {
            extend: 'excel',
            text: 'Export Search Results',
            className: 'btn btn-default',
            exportOptions: {
                columns: ':visible :not(.notexport)'
            }
        }]
    });