需求
后台管理系统需要导出当前条件下的数据为.xls文件
前置条件
后台通过数据流的形式返回文件
实现
1、配置请求头
axios({
responseType: 'blob',//配置数据类型
headers: {
'Content-Type': 'application/json'
},
url:'',
data,
})
2、数据转换
axios({
responseType: 'blob',//配置数据类型
headers: {
'Content-Type': 'application/json'
},
url:'',
data,
}).then(res=>{
let blob = new Blob([res], {type: "application/vnd.ms-excel"});//type是文件类,详情可以参阅blob文件类型
let objectUrl = URL.createObjectURL(blob);//生成下载链接
let a=document.createElement('a');//创建a标签用于文件下载
a.href=objectUrl;//赋值下载路径
a.download='数据表格.xls';//下载的文件名称(非必填)
document.body.appendChild(a);//插入DOM树
a.click();//点击a标签触发
document.body.removeChild(a);//删除a标签
})