下载文件(Excel)功能,后端返回blob字节流,前端怎么处理?

在做大屏数据项目有个报表下载的功能,根据用户选择的时间下载对应时间的报表,后端返回的是文件流,前端需要怎么去处理呢?

实现的功能效果:

 

后端返回的数据:

需要我们处理的乱码:

前端代码:

 1 exportExcel(){ 
 2    axios({
 3       methods:"xxxx",
 4       url:"xxx/xxxx/xxxx",  
 5       responseType:'blob',//在发送请求的时候,设置返回信息为二进制文件,默认为json
 6       data:xxxx
 7    }).then(res => {
 8         let blob = new Blob([res],{type:'application/xlsx'});
 9         let url = window.URL.createObjectURL(blob);
10         const link = document.createElement("a");//创建a标签
11         link.href = url;
12         link.download = '报表.xlsx';//文件的文件名
13         link.click();
14         URL.revokeObjectURL(url);
15    });
16 }
posted @ 2023-05-05 11:12  NUNA11  阅读(765)  评论(0)    收藏  举报