$(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
});
});
});
你可以更改这行代码:
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'
}
}
}
]
} );
} );
有关按钮扩展的基本配置,请参阅此示例。