vue通過(guò)接口直接下載java生成好的Excel表格案例
通過(guò)瀏覽器直接訪問(wèn)導(dǎo)出接口就會(huì)自動(dòng)下載創(chuàng)建好的 Excel 表格。但是我們?cè)趘ue里使用axios請(qǐng)求接口,一般是處理json數(shù)據(jù),如果要處理文件流數(shù)據(jù),需要做下特殊處理即可直接下載文件。
假如 下載Excel接口為:/apis/downExcel,則請(qǐng)求如下
import axios from ’axios’ export const exportFile = params => { var param = new URLSearchParams() param.append(’beginTime’, params.beginTime) param.append(’endTime’, params.endTime) return axios({ method: ’post’, data: param, url: ’/apis/downExcel’, responseType: ’blob’ })}
下載按鈕觸發(fā)下載方法如下:
downExcel() { var params = { beginTime: this.times[0], endTime: this.times[1] }; exportFile(params).then( data => { /** 獲取生成設(shè)置好的文件名 */ var filename = data.headers['content-disposition']; filename = filename.split('=')[1]; filename = decodeURIComponent(filename, 'utf-8'); /** 接收文件流 */ const blob = new Blob([data.data]); let url = URL.createObjectURL(blob); /** 模擬瀏覽器操作Document,并模擬下載動(dòng)作 */ let link = document.createElement('a'); link.style.display = 'none'; link.href = url; link.setAttribute('download', filename); document.body.appendChild(link); link.click(); }, error => { console.log(error); this.$message.error('下載異常,請(qǐng)稍后再試'); });}
這樣就可以在vue項(xiàng)目中完整下載Excel接口,當(dāng)然vue也有生成Excel的插件,接收后臺(tái)的json數(shù)據(jù)然后在前端生成并下載。
補(bǔ)充知識(shí):Vue實(shí)現(xiàn)通過(guò)后端接口導(dǎo)出Excel表格
需求:后端提供下載接口,返回二進(jìn)制文件流,前端導(dǎo)出為xlsx格式的Excel表格
實(shí)現(xiàn):
1、按鈕調(diào)用下載接口
2、new Blob導(dǎo)出
PS:
1、第一步請(qǐng)求接口時(shí),注意要設(shè)置請(qǐng)求responseType為blob類型,否則下載后,顯示格式錯(cuò)誤,無(wú)法打開(kāi)
2、new Blob請(qǐng)求是,注意修改type類型為application/vnd.ms-excel
以上這篇vue通過(guò)接口直接下載java生成好的Excel表格案例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 酷狗音樂(lè)創(chuàng)酷群怎么操作?創(chuàng)酷群操作方法介紹2. 釘釘如何拉黑同事 釘釘拉黑同事教程3. 12306候補(bǔ)購(gòu)票能同時(shí)選幾趟車 候補(bǔ)購(gòu)票可以用學(xué)生證嗎4. 百度瀏覽器網(wǎng)頁(yè)翻譯使用教程5. 釘釘APP設(shè)置允許外請(qǐng)打卡具體操作步驟6. 釘釘高溫補(bǔ)貼提現(xiàn)不了 釘釘高溫補(bǔ)貼在哪找7. 釘釘回放怎么轉(zhuǎn)發(fā)給朋友8. qq音樂(lè)唱片等級(jí)怎么分9. 微信中如何復(fù)制空白代碼 微信中復(fù)制空白代碼的方法10. 對(duì)mobileqq的幾個(gè)問(wèn)題
