如何使用angularjs / javascript将HTML表导出为ex cel

问题描述 投票:0回答:1

我写了下面的代码来下载文件。它正在为有限的记录工作。现在我的记录数超过12000.然后它挂起浏览器并且文件未下载

var ua = window.navigator.userAgent;
var msie = ua.indexOf("MSIE ");
var edgetype = ua.indexOf("Edge");
var blobObject;
if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {
    expExcelIframe.document.open("txt/html", "replace");
    expExcelIframe.document.write(html);
    expExcelIframe.document.close();
    expExcelIframe.focus();
    expExcelIframe.document.execCommand("SaveAs", true, fileName);
}
else if (edgetype > 0) {
    blobObject = new Blob([html]);
    window.navigator.msSaveOrOpenBlob(blobObject, fileName);
}
else {
    window.open('data:application/vnd.ms-excel,' + encodeURIComponent(html));
}
javascript angularjs
1个回答
0
投票

替换encodeURIComponent

window.open('data:application/vnd.ms-excel,' + encodeURIComponent(html));

Better

var blob = new Blob([html],{type: 'data:application/vnd.ms-excel' });
var u = URL.createObjectURL(blob);
window.open(u);

这避免了转换为base64的内存和计算密集步骤。

© www.soinside.com 2019 - 2024. All rights reserved.