最近在工作中药实现导出表格这个功能,后端小哥哥已经实现了接口完成,但是在前端调用的时候出现了这个问题
乱码,现在给出以下解决方案:
1.在main.js中写入导出的公共方法
// 导出Excel公用方法 export function exportMethod(data) { axios({ method: data.method, url: `${data.url}${data.params ? '?' + data.params : ''}`, responseType: 'blob' }).then((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) // link.download = res.headers['content-disposition'] //下载后文件名 link.download = data.fileName //下载的文件名 document.body.appendChild(link) link.click() document.body.removeChild(link) }).catch(error => { this.$Notice.error({ title: '错误', desc: '网络连接错误' }) console.log(error) })
2、在需要的界面引入这个方法:
import { exportMethod } from '../../main'
3、写入点击方法:
exportTable(){ let myObj = { method: 'get', url: url, //请求地址 fileName: '小区表格', params: `district_id=${this.district_id}&police_id=${this.police_id}` } exportMethod(myObj) }
OK,这样就完成啦!亲测有效哦