从jQuery Datatables

时间:2016-04-21 08:22:59

标签: datatables

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

我想跳过导出到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]
            }
        }
    ]
});

我知道这个问题被多次询问,但是它们没有为我工作,可能是版本问题。

6 个答案:

答案 0 :(得分:19)

尝试使用排除columns选项的最后一列的CSS选择器。

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

答案 1 :(得分:8)

您可以添加一个类:

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

他们按类排除:

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

答案 2 :(得分:1)

我只是想将其添加进去,因为如果您还没有添加其他内容(例如可见列),那么被接受的答案只能排除在外。

为了仅包括最后一列以外的可见列,以便将其与“列可见性”按钮结合使用,请使用

$('#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)'
        }
    }]
});    

答案 3 :(得分:0)

用于 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)',
        },
    },
]

答案 4 :(得分:0)

从@Felipe Castilho 那里借来的,他给出了正确的答案和所有的功劳。 如果您想使用 'colvis' 选项,即想显示隐藏列并相应地打印。在这种情况下,去:

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

然后在 jquery 中

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

同样,代码直接引用@Felipe,他给出了很好的答案

答案 5 :(得分:-1)

Javascript部分:

file_list=list.files(file_location, pattern="^ID.*xls",full.names = T) 
import=lapply(file_list, function(x) read_xls(x, col_names = T))

});

要包含的js文件:

$(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
    } ]
} );

希望这对您有所帮助。 谢谢。