导出为.xls文件时大数据不起作用 [英] export as .xls file not work when large data

查看:105
本文介绍了导出为.xls文件时大数据不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用javascript代码导出html表到.xls文件。它在crome中工作,当数据不大时。但是当数据很大时它会显示我的错误,如

I am using the javascript code for export html table to .xls file.Its work in crome and when data is not large.But when data is large then it shows me error like

我用于将表导出为.xls文件的代码如下:

The code which i have used for export the table as .xls file is as below:

function exportDiv() {
    //working on crome perfectly       
        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 = day + "." + month + "." + year + "_" + hour + "." + mins;
        var a = document.createElement('a');
        var data_type = 'data:application/vnd.ms-excel';
        var table_div = document.getElementById('tbl-1');
        var table_html = table_div.outerHTML.replace(/ /g, '%20');
        a.href = data_type + ', ' + table_html;
        a.download = 'exported_table_' + postfix + '.xls';
        a.click();
        e.preventDefault();

}

我还有足够的4 gb ram所以我认为它不是内存限制问题。

I have also sufficient 4 gb ram so i think its not memory limit problem.

你能帮我解决一下如何导出大数据吗?
编辑:我也是这样使用

Can you please help me for how to export large data? I ahve used this way also

 var table_html=encodeURIComponent(table_div.outerHTML);

但仍然出现同样的错误。

But still same error come.

推荐答案

我在按钮点击时调用了tableToexcel函数,如下所示,它在firefix中工作正常。

I have called the tableToexcel function on button click like as below and it is working fine in firefix.

<a id="dlink"  style="display:none;"></a>

    var tableToExcel = (function () {
            var uri = 'data:application/vnd.ms-excel;base64,'
            , template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>'
            , base64 = function (s) { return window.btoa(unescape(encodeURIComponent(s))) }
            , format = function (s, c) { return s.replace(/{(\w+)}/g, function (m, p) { return c[p]; }) }
            return function (table, name, filename) {
                if (!table.nodeType) table = document.getElementById(table)
                var ctx = { worksheet: name || 'Worksheet', table: table.innerHTML }

                document.getElementById("dlink").href = uri + base64(format(template, ctx));
                document.getElementById("dlink").download = filename;
                document.getElementById("dlink").click();

            }
        })();

这篇关于导出为.xls文件时大数据不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆