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 = "績效考核.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-09
vue移動(dòng)端UI框架實(shí)現(xiàn)QQ側(cè)邊菜單組件
這篇文章主要介紹了vue移動(dòng)端UI框架實(shí)現(xiàn)仿qq側(cè)邊菜單組件,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-03-03
vue axios請(qǐng)求頻繁時(shí)取消上一次請(qǐng)求的方法
這篇文章主要介紹了vue axios請(qǐng)求頻繁時(shí)取消上一次請(qǐng)求的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11
vue實(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

