export function getExcelExport (url, params, fileName) {
return new Promise((resolve, reject) => {
vm.$http.post(url, params, { responseType: 'blob' }).then(res => {
const link = document.createElement('a');
const blob = new Blob([res], { type: 'application/vnd.ms-excel' });
link.style.display = 'none';
link.href = URL.createObjectURL(blob);
link.setAttribute('download', `${fileName || '导出文件'}.xls`);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
resolve({ message: '导出成功' });
}).catch(err => {
this.$message.error('下载失败')
reject(err);
});
});
}
// 第二种类似的选择
this.$axios({
method: 'post',
url: `/api`,
data: data,
responseType: 'blob'
}).then((res) => {
let link = document.createElement('a')
let blob = new Blob([res.data], {type: 'application/vnd.ms-excel'})
link.style.display = 'none'
link.href = URL.createObjectURL(blob)
link.download = res.headers['content-disposition'] //下载后文件名
let name = link.download.split('=')[1]
link.download = name //下载的文件名
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
}).catch(error => {
this.$message.error('下载失败')
})
前端处理后端返回文件流实现导出Excel
最新推荐文章于 2024-07-30 09:30:00 发布