export function exportExcel(url, params, name) { // url: 地址 params=>参数 name=>报表名称
const token = localStorage.getItem('X-LONGCHAT-Token')
return new Promise((resolve) => {
axios
.post(url, params, {
headers: {
'token': token,
'Content-Type': 'application/json'
},
responseType: 'blob'
})
.then(res => {
const blob = new Blob([res.data], {
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;chartset=utf-8'
})
if ('download' in document.createElement('a')) {
// 非IE下载 模拟一个超链接 链接指向url 创建的文件流路径
const elink = document.createElement('a')
elink.style.display = 'none'
elink.href = URL.createObjectURL(blob) // 生成链接
elink.target = '_self'
elink.download = `${name}.xls`
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href) // 释放URL 对象
document.body.removeChild(elink)
} else {
// IE10+下载
navigator.msSaveBlob(blob)
}
resolve({code: res.data.code, flag: true})
}).catch(() => {
resolve({code: res.data.code, flag: false})
})
})
vue二进制数据流 导出报表
最新推荐文章于 2024-06-06 10:02:08 发布