前端获取数据流导出excel

455 阅读1分钟

需求

后台管理系统需要导出当前条件下的数据为.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=>{
	 const objectUrl = window.URL.createObjectURL(res.data)// 生成下载链接
	 const elink = document.createElement('a')// 创建a标签用于文件下载
	 elink.href = objectUrl// 赋值下载路径
	 elink.download = '数据表格.xlsx'// 下载的文件名称(非必填)
	 document.body.appendChild(elink)// 插入DOM树
	 elink.click()// 点击a标签触发
	 document.body.removeChild(elink)// 删除a标签
})