背景:
后端返还一个二进制流的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',
}
这样就可以解决下载的问题了。