使用js 导出Excel由于数据量太大导致出现网络错误,如图所示:
解决办法:
表格绘制完成后,使用 Blob
let blob = new Blob([format(template, ctx]);
a.href = URL.createObjectURL(blob)
var tableToExcel = function(table, fileName) {
var uri = 'data:application/vnd.ms-excel;base64,'
,fileName = fileName || 'excelexport'
, 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><meta name="renderer" content="webkit"><!--[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>';
var ctx = {worksheet:'Worksheet', table: table};
var a = document.createElement('a');
document.body.appendChild(a);
a.hreflang = 'zh';
a.charset = 'utf8';
a.type="application/vnd.ms-excel";
let blob = new Blob([format(template, ctx)]);
a.href = URL.createObjectURL(blob);//解决由于数据量太大导致chrome导出出现网络错误(由于url长度限制)
// a.href = uri + Base64.encode(format(template,ctx));
a.target = '_blank';
a.download = fileName + '.xls';
a.tableBorder = 1;
a.click();
};