怎样单击导出页面上加载的多个workbook实例?
背景:当一个页面上包含多个Workbook表单时,怎样才能一键导出所有Workbook的Excel文档?思路:
利用第三方jszip组件,把导出的Excel文件流压缩后,导出压缩包。
核心代码:
const zip = new JSZip();
if(!zip && spreads.length === 0){
return;
}
var fileName = "spread";
for(let i=0; i<spreads.length; i++) {
var spread = spreads;
let file = "";
var json = spread.toJSON();
// 正常执行excelIo的逻辑即可
excelIo.save(json, function (blob) {
file = blob;
// 在此处把文件的blob流打包到zip里
zip.file(fileName + (i+1) + ".xlsx", file);
}, function (e) {
console.log(e);
}, {password: ""});
}
// 定时器,每500毫秒检查一下是否完成了文件导出操作。
var intervalId = setInterval(function () {
var files = zip.files;
var len = 0;
for(let file in files){
len ++;
}
if(len === spreads.length){
// 利用FileSaver的saveAs下载打包好的压缩包
zip.generateAsync({type:"blob"}).then(content => {
saveAs(content, "spreads.zip");
});
clearInterval(intervalId);
}
}, 500);
完整示例请参考附件。
页:
[1]