vue3前端導(dǎo)出excel表格的兩種實(shí)現(xiàn)方法
1、前端直接導(dǎo)出excel
xlsx安裝
npm install --save xlsx file-saver
xlsx引入
// 局部引入 import * as XLSX from 'xlsx' import FileSaver from 'file-saver' // 在main.js中引入XLSX import XLSX from 'xlsx' Vue.use(XLSX)
導(dǎo)出函數(shù)定義
// XLSX需要npm 安裝后全局或者局部引入后使用 // 導(dǎo)出Excel const exportExcel = () => { const xlsxParams = { row: true } // 根據(jù)表格導(dǎo)出 可以根據(jù)json數(shù)據(jù)導(dǎo)出 json_to_sheet const wb = XLSX.utils.table_to_book( document.querySelector('#out-table'), xlsxParams ) // 寫入 const wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' }) try { FileSaver.saveAs( new Blob([wbout], { type: 'application/octet-stream' }), '物料庫存信息.xlsx' ) } catch (e) { if (typeof consloe !== 'undefined') { ElMessage.error({ message: e.wbout, type: 'error' }) } } return wbout }
注意:如果導(dǎo)出的表格數(shù)據(jù)量繁多,我們可以在里面添加延時(shí)函數(shù)進(jìn)行導(dǎo)出
2、調(diào)用后端接口導(dǎo)出excel
// 引入axios import axios, { AxiosRequestConfig } from "axios" // 導(dǎo)出 const exportExcels=()=>{ if (formData.uuid != '' || formData.uuid != 'undefined') { axios({ url: '/pm/pmEmployeeEvaluation/exportExcel', method: 'post', responseType: 'blob', // 設(shè)置響應(yīng)類型為 blob data: { uuid: formData.uuid // 根據(jù)需要傳遞的參數(shù)進(jìn)行調(diào)整 } }) .then(res => { const blob = new Blob([res], { type: 'application/vnd.ms-excel;charset=UTF-8' }); const fileName = "績(jī)效考核.xlsx" const url = window.URL.createObjectURL(blob) const link = document.createElement("a") link.href = url; link.setAttribute("download", fileName); document.body.appendChild(link); link.click(); document.body.removeChild(link); window.URL.revokeObjectURL(url); }).catch(error => { console.error('Error:', error); }); // const fileUrl = "http://10.1.22.31:9771/pm/pmEmployeeEvaluation/notoken/exportExcel?uuid=" + formData.uuid; // 文件的URL // window.location.href = fileUrl; }else{ ElMessage('當(dāng)前暫無excel導(dǎo)出?。?!') } }
直接調(diào)用定義好的接口,不單個(gè)引入 axios
總結(jié)
到此這篇關(guān)于vue3前端導(dǎo)出excel表格的兩種實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)vue3前端導(dǎo)出excel內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
策略模式實(shí)現(xiàn) Vue 動(dòng)態(tài)表單驗(yàn)證的方法
策略模式(Strategy Pattern)又稱政策模式,其定義一系列的算法,把它們一個(gè)個(gè)封裝起來,并且使它們可以互相替換。封裝的策略算法一般是獨(dú)立的,策略模式根據(jù)輸入來調(diào)整采用哪個(gè)算法。這篇文章主要介紹了策略模式實(shí)現(xiàn) Vue 動(dòng)態(tài)表單驗(yàn)證,需要的朋友可以參考下2019-09-09vue移動(dòng)端UI框架實(shí)現(xiàn)QQ側(cè)邊菜單組件
這篇文章主要介紹了vue移動(dòng)端UI框架實(shí)現(xiàn)仿qq側(cè)邊菜單組件,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-03-03vue axios請(qǐng)求頻繁時(shí)取消上一次請(qǐng)求的方法
這篇文章主要介紹了vue axios請(qǐng)求頻繁時(shí)取消上一次請(qǐng)求的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11vue實(shí)現(xiàn)廣告欄上下滾動(dòng)效果
這篇文章主要介紹了vue實(shí)現(xiàn)廣告欄上下滾動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11基于vue與element實(shí)現(xiàn)創(chuàng)建試卷相關(guān)功能(實(shí)例代碼)
這篇文章主要介紹了基于vue與element實(shí)現(xiàn)創(chuàng)建試卷相關(guān)功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12