原文:https://www.cnblogs.com/adaGao-frontEnd/p/9386204.html
在项目中遇到导出excel文件乱码问题,按照网上的一些教程和方法,但最后下载下来的文件仍是乱码,后来有大神相助,解决了这个问题,下面po出我的代码:
exportTemplate(this.form1.templateId, {
date: date
}).then(res => {
let fileName = res.headers['content-disposition'].split('=')[1]
// 获取文件名
let objectUrl = URL.createObjectURL(new Blob([res.data]))
// 文件地址
const link = document.createElement('a')
link.download = fileName
link.href = objectUrl
link.click()
})
export function exportTemplate(templateId, query) {
return request({
url: '/performance/template/export/' + templateId,
method: 'get',
params: query,
// 下处标红
responseType: 'blob'
})
}
服务端:
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setHeader("Content-Disposition","attachment;filename=" + fileName + EXCEL03_SUFFIX);
标红部分是最后解决问题的关键,我尝试过把它放在页面的接口调用代码中,依旧乱码,但是放在这里,文件乱码问题就没有了,希望能对你们有帮助