前端导出Excel文件乱码解决方案

3,537 阅读1分钟

公司一个报表做导出excel文件,后端接口返回的是流文件,如下:

image.png

前端是使用vue开发,使用blob对象进行接收,然后创建a标签进行下载:

const blob = new Blob([res], {type: 'application/vnd.ms-excel;charset=utf-8'})
const date = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
const a = document.createElement('a')
a.href = URL.createObjectURL(blob)
a.download= `${date}.xlsx`
a.click()

后来发现导出的文件乱码,导出的excel里面显示"锟......"等乱码,后来尝试网上解决方案,都没有解决,然后发现后端设置的响应头是:

image.png

然后我设置了请求头和响应头:

image.png

注意:responseType千万不要写到headers里面

然后问题完美解决!