导出 excel 中 DataTables 中的所有行,但仅导出可见行,而不导出保留在分页中的行

问题描述 投票:0回答:1
$(document).ready(function() {
    $('#downloadBtn').click(function() {
        var table = $('.table2excel').DataTable();
    var allRows = table.rows().data().toArray();
        var allRowsTable = $('<table>').append($('.table2excel').find('thead').clone()).append($('<tbody>'));
        for (var i = 0; i < allRows.length; i++) {
            allRowsTable.append($('<tr>').append(allRows[i]));
    }
    allRowsTable.table2excel({
            filename: 'data.xls',
            sheetName: 'Sheet1',
            exclude: '.noExl',
            preserveColors: true
    });
    });
});

此代码用于从 excel 中的 DataTables 导出所有行,但仅导出可见行,而不导出保留在分页中的行。

注意:使用table2excel.js

如何解决这个问题?

其他代码

$(document).ready(function() {
            $('#downloadBtn').click(function() {
                $(".table2excel").table2excel({
                    filename: 'myTable.xls',
                    sheetName: 'Sheet1',
                    exclude:".noExl",
                    name: "Excel Document Name",
                    filename: "Attendance-Report-" + new Date().toISOString().replace(/[\-\:\.]/g, ""),
                    fileext: ".xls",
                    exclude_img: true,
                    exclude_links: true,
                    exclude_inputs: true
                });
            });
        });

javascript ajax datatable export export-to-excel
1个回答
0
投票

你可以更改这行代码:

var allRows = table.rows().data().toArray();

对此:

var allRows = table.rows( { page: 'current' } ).data().toArray();

这使用 选择器修饰符 仅选择当前显示页面中的数据。

selector modifier 文档显示了您可以选择的各种不同的选择设置。它可以与行选择器结合使用,以进一步控制您要选择的数据子集。


替代方法

如果您对此感兴趣:

您已经在使用 DataTables - 那么为什么不使用它的内置支持将数据导出到 Excel?您可以使用如上所示的相同

page: 'current'
方法仅导出当前页面。

$(document).ready(function() {

  var table = $('#example').DataTable( {
    dom: 'Brftip',
    buttons: [
      {
        extend: 'excel', 
        exportOptions: {
          modifier: {
            page: 'current'
          }
        }
      }
    ]
  } );

} );

有关按钮扩展的基本配置,请参阅此示例

© www.soinside.com 2019 - 2024. All rights reserved.