前端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文件(二进制)的处理方法