export as .xls file not work when large data

后端 未结 3 1648
太阳男子
太阳男子 2020-12-19 02:38

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

相关标签:
3条回答
  • 2020-12-19 03:13

    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();
    
                }
            })();
    
    0 讨论(0)
  • 2020-12-19 03:22

    excel sheet has got a character limit for 32767 characters similar to that of an excel cell.

    for reference check this link : http://office.microsoft.com/en-in/excel-help/excel-specifications-and-limits-HP010073849.aspx

    0 讨论(0)
  • 2020-12-19 03:25

    Most likely you've hit the 2 MB URL limit in Chrome. You can read about it here - issue link. I suggest you try your app in Firefox, if it works, then that is the issue.

    0 讨论(0)
提交回复
热议问题