前端如果用默认的axios配置导出的excel将会是乱发,例如下图
解决方式是将axios的配置文件更改为如下,将服务器的流数据直接转换成blob类型
let config = {
responseType: 'blob'
}
axios['post'](_url,_params,config)
.then((response)=>{
var data = response.data;
var downloadElement = document.createElement('a');
var href = window.URL.createObjectURL(data); //创建下载的链接
downloadElement.href = href;
downloadElement.download = '导出文件.xls'; //下载后文件名
document.body.appendChild(downloadElement);
downloadElement.click(); //点击下载
document.body.removeChild(downloadElement); //下载完成移除元素
window.URL.revokeObjectURL(href); //释放掉blob对象
})
.catch((error)=>{
reject(error)
});