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