1.通过npm 下载 excel-export 插件
let nodeExcel = require('excel-export');
2.拿到后台数据之后配置
let excelConfig ={}; 创建对象 excelConfig.name = "mysheet";
excelConfig.cols = [ {
caption:'SN',
type:'string'
},
];
let json = JSON.parse(resp.body).result;
if(json.length) {
let arr = [];
json.map((item)=>{
let a = [];
a.push(item);
arr.push(a);
})
excelConfig.rows = arr;
let res1 = nodeExcel.execute(excelConfig); res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
res.setHeader("Content-Disposition", "attachment; filename=" + "Report.csv");
res.json({code: 1, result: res1});
}
3. 前端拿到返回数据之后处理
const buf = Buffer.from(data, 'binary')
let blob = new Blob([buf], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'});
let downloadElement = document.createElement('a'); let href = window.URL.createObjectURL(blob);
downloadElement.download = this.form.snBatchCode+'SN.xlsx';
document.body.appendChild(downloadElement);
downloadElement.click();
document.body.removeChild(downloadElement);
window.URL.revokeObjectURL(href);
参考: https: