之前写过一篇文章,前后端分离,Excel导出实现
有些朋友在使用POI进行Excel导出时,发现内容是乱码的,如下:
然后请求的参数的中,添加如下参数:
(1)responseType: ‘arraybuffer’
(2)或者是responseType: ‘blob’
我测试的时候,添加两种 responseType都是可以解决乱码问题的,具体如下:
// 导出用户
exportUser () {
axios({
method: 'post',
url: 'http://192.168.43.152:8089/user/export',
data: {
username: this.filters.keyword
},
responseType: 'blob'
}).then((res) => {
console.log(res)
const link = document.createElement('a')
let blob = new Blob([res.data],{type: 'application/vnd.ms-excel'});
link.style.display = 'none'
link.href = URL.createObjectURL(blob);
console.log("href:"+link.href)
let num = ''
for(let i=0;i < 10;i++){
num += Math.ceil(Math.random() * 10)
}
link.setAttribute('download', num + '.xls')
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
}).catch(error => {
console.log(error)
})
},