背景:
后端返还一个二进制流的excl表格数据,前端需要对其解析,然后可提供给客户进行下载。
思路:把二进制流数据转换给blob对象,然后利用a标签进行前端下载。
代码:
后端返还
类似如下的数据
前端代码:
let res: any = await api.getData(data);let blob = new Blob([res], { type: 'application/vnd.ms-excel;charset=utf-8' })let href = window.URL.createObjectURL(blob); //创建下载的链接const link = document.createElement('a');link.href = href;link.download = '计算列表.xlsx';link.click();
如果正常情况下就可以解决下载问题。
异常处理:
以上问题需要更改一下接口请求数据的返回方式,
{url:'/',data:'//',responseType: 'arraybuffer',
}
这样就可以解决下载的问题了。