前端axios下载excel文件(二进制)的处理方法

936 阅读1分钟

前端axios下载excel文件(二进制)的处理方法

后端生成excel后,前端 click 事件进行下载 ,脱坑记录,亲测有效。
lz 使用的是 axios 发起请求 ,
首先,介绍一下思路,准备通过动态创建 a 标签 通过 blob 对象进行接收
完整 code 如下 :

var blob = new Blob([res.data],{type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'},'responseType':'blob'); 
//application/vnd.openxmlformats-officedocument.spreadsheetml.sheet这里表示xlsx类型
var downloadObj = document.createElement('a');
var href = window.URL.createObjectURL(blob); //创建下载的链接
downloadObj.href = href;
downloadObj.download = 'xxx.xlsx'; //下载后文件名
document.body.appendChild(downloadElement);
downloadObj.click(); //点击下载
document.body.removeChild(downloadObj); //下载完成移除元素
window.URL.revokeObjectURL(href); //释放掉blob对象

时间原因,关于下载的相关知识以后再拓展吧,哈哈

备注:
axios:设置返回数据格式,

axios.creat({ //一些配置 responseType: 'blob' 返回数据的格式,可选值为arraybuffer,blob,document,json,text,stream,默认值为json })

参考

前端axios下载excel文件(二进制)的处理方法