项目场景:
前端使用file-saver 和 xlsx 生成下载表格:`
exportValidationErrExcel() {
import("xlsx").then(xlsx => {
const field = ['idx', 'cell', 'reason'];
const label = { idx: this.i18n.getTranslate('rowNum'), cell: this.i18n.getTranslate('cellContent'), reason: this.i18n.getTranslate('import.err') };
let worksheet = xlsx.utils.json_to_sheet(this.validationResult, { header: field });
const range = xlsx.utils.decode_range(worksheet['!ref'])
for (let c = range.s.c; c <= range.e.c; c++) {
const header = xlsx.utils.encode_col(c) + '1'
worksheet[header].v = label[worksheet[header].v]
}
const workbook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };
const excelBuffer: any = xlsx.write(workbook, { bookType: 'xlsx', type: 'array' });
this.saveAsExcelFile(excelBuffer, this.i18n.getTranslate('import.err') + this.fileToProcess.split('.')[0] + ".xlsx");
});
}
saveAsExcelFile(buffer: any, fileName: string): void {
// import("file-saver").then(FileSaver => {
let EXCEL_TYPE = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8";
const data: Blob = new Blob([buffer], {
type: EXCEL_TYPE
});
saveAs(
data,
fileName
);
// });
}