Excel导出获取错误:失败 - 大型导出时出现网络错误

时间:2016-06-03 19:12:07

标签: javascript

我正在使用此代码从网页导出表格 当我导出<的表时,这段代码工作正常。 1000行左右,但当我尝试导出更大的表时,我收到错误:网络错误失败。这发生在chrome中。它在IE中没有做任何事情(惊喜)。

是内存问题吗?任何想法如何导出大型表而不会遇到问题?

感谢您的帮助

    var dt = new Date();
    var day = dt.getDate();
    var month = dt.getMonth() + 1;
    var year = dt.getFullYear();
    var hour = dt.getHours();
    var mins = dt.getMinutes();
    var postfix = month + "." + day + "." + year + "_" + hour + "." + mins;
    //creating a temporary HTML link element (they support setting file names)
    var a = document.createElement('a');
    //getting data from our div that contains the HTML table
    var data_type = 'data:application/vnd.ms-excel';
    var table_div = document.getElementById('datatable');
    var table_html = table_div.outerHTML.replace(/ /g, '%20');
    a.href = data_type + ', ' + table_html;
    //setting the file name
    a.download = 'MachineReport_' + postfix + '.xls';
    //triggering the function
    a.click();
    //just in case, prevent default behaviour
    e.preventDefault();

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。这帮我解决了。请尝试替换:

 a.href = data_type + ', ' + table_html;

使用:

xData = new Blob([table_html], { type: 'text/csv' });
var xUrl = URL.createObjectURL(xData);
a.href = xUrl;

答案 1 :(得分:0)

没有答案,但经过研究,它似乎是Chrome在尝试执行此脚本时强加的2meg限制的一部分。我不知道有什么工作。