需求:通过后端接口下载excel文件,后端没有文件地址,返回二进制流文件
实现:axios(ajax类似)
主要代码:
axios:设置返回数据格式为blob或者arraybuffer
如:
var instance = axios.creat({ ... //一些配置 responsetype: 'blob', //返回数据的格式,可选值为arraybuffer,blob,document,json,text,stream,默认值为json })
请求时的处理:
getexcel().then(res => { //这里res.data是返回的blob对象 var blob = new blob([res.data], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'}); //application/vnd.openxmlformats-officedocument.spreadsheetml.sheet这里表示xlsx类型 var downloadelement = document.createelement('a'); var href = window.url.createobjecturl(blob); //创建下载的链接 downloadelement.href = href; downloadelement.download = 'xxx.xlsx'; //下载后文件名 document.body.appendchild(downloadelement); downloadelement.click(); //点击下载 document.body.removechild(downloadelement); //下载完成移除元素 window.url.revokeobjecturl(href); //释放掉blob对象 })
总结
以上所述是小编给大家介绍的前端axios下载excel文件(二进制)的处理方法,希望对大家有所帮助
如对本文有疑问, 点击进行留言回复!!
轻松解决 org.apache.taglibs.standard.tlv.JstlCoreTLV 困惑
vert实践五——Json?Protocol Buffer?FlatBuffers?
[基于tensorflow的人脸检测] 基于神经网络的人脸检测8——验证训练好的神经网络
selenium + ajax抓取英雄联盟全部英雄的详细信息及多线程保存全部皮肤图片到本地
网友评论