nodejs中间层将⽂件返回给前端
1.通过npm 下载 excel-export 插件
let nodeExcel = require('excel-export'); 
2.拿到后台数据之后配置
  let conf ={};  创建对象
conf.name = "mysheet";  //表名
//列名
{
caption:'SN',
type:'string'
},
];
  let json = JSON.parse(resp.body).result; // 处理后台返回数据
  // 判断后台返回数据
  if(json.length) {
let arr = [];
//将json数据转换为⼆维数组
json.map((item)=>{
let a = [];
a.push(item);
arr.push(a);
})
//⾏数据
// console.log('配置信息',excelConfig);
let res1 = ute(conf);
res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
res.setHeader("Content-Disposition", "attachment; filename=" + "Report.csv");
// d(res1, 'binary');
res.json({code: 1, result: res1});
}
 3. 前端拿到返回数据之后处理
    const buf = Buffer.from(data, 'binary')
js 二维数组
var blob = new Blob([buf], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'}); // application/vnd.openxmlformats-officedocument.spreadsheetml.sheet这⾥表⽰xlsx类型var downloadElement = ateElement('a');
var href = ateObjectURL(blob); // 创建下载的链接
downloadElement.href = href;
downloadElement.download = this.form.snBatchCode+'SN.xlsx'; // 下载后⽂件名
document.body.appendChild(downloadElement);
downloadElement.click(); // 点击下载
veChild(downloadElement); // 下载完成移除元素
vokeObjectURL(href); // 释放掉blob对象
  参考: /zh-CN/docs/Web/API/Blob

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。