最近在工作中葯實現導出表格這個功能,后端小哥哥已經實現了接口完成,但是在前端調用的時候出現了這個問題
亂碼,現在給出以下解決方案:
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,這樣就完成啦!親測有效哦