我正在尝试直接从数据表导出到Excel。
从ajax调用开始:
{{1}}
使用以上所有内容,我可以成功地从数据表中导出结果。我甚至可以使用过滤搜索来深入查看较小的数据集,并导出结果。
我使用了以下小提琴:http://jsfiddle.net/donpayne/jzdjdo3z/
我遇到的问题在于数据表的Show Entries下拉列表。通常,下拉列表设置为10.无论是否过滤搜索,如果总记录数大于“显示条目”下拉列表,Excel表格将仅返回下拉列表中设置的总金额。
你可以测试我在小提琴中所说的内容。将Show Entries下拉列表设置为10,然后导出到Excel。如果您注意到,该表中总共有58条记录。 Excel工作表只返回10条记录。
我需要返回所有记录。如果我有2000条记录,并且Show Entries下拉列表设置为10,我需要导出的Excel工作表包含所有2000条记录。
如果我将搜索过滤到大约56条记录,则相同;当我导出到excel时,无论Show Entries下拉列表设置为什么,我都应该在该电子表格上总共有56条记录。
如上所述,我引用了小提琴中的代码并将其改为适合我的数据表。
答案 0 :(得分:1)
我认为最好的办法是删除分页,然后进行导出,然后在完成后重新打开分页。
我做了一些小改动:
$(function ()
{
var table = $('#example').DataTable();
$("#btnExport").click(function(e)
{
table.page.len( -1 ).draw();
window.open('data:application/vnd.ms-excel,' +
encodeURIComponent($('#example').parent().html()));
setTimeout(function(){
table.page.len(10).draw();
}, 1000)
});
});
更新了小提琴:http://jsfiddle.net/jzdjdo3z/176/
网页时长文档:https://datatables.net/reference/api/page.len()
分页选项文档:https://datatables.net/reference/option/paging
我不确定为什么使用dataTables和DataTables进行初始化有所不同,但确实如此。所以请留意这一点。