jQuery数据表将数据导出到Excel

时间:2018-05-23 19:48:10

标签: javascript jquery datatables export

我正在尝试直接从数据表导出到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条记录。

如上所述,我引用了小提琴中的代码并将其改为适合我的数据表。

1 个答案:

答案 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进行初始化有所不同,但确实如此。所以请留意这一点。