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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue使用echarts實(shí)現(xiàn)地圖的方法詳解
這篇文章主要為大家詳細(xì)介紹了vue使用echarts實(shí)現(xiàn)地圖的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03
Element-UI實(shí)現(xiàn)復(fù)雜table表格結(jié)構(gòu)的操作代碼
Element-UI組件el-table用于展示多條結(jié)構(gòu)類似的數(shù)據(jù),可對數(shù)據(jù)進(jìn)行排序、篩選、對比或其他自定義操作,本文給大家介紹Element-UI實(shí)現(xiàn)復(fù)雜table表格結(jié)構(gòu)的操作代碼,感興趣的朋友一起看看吧2023-12-12
vue項(xiàng)目前端加前綴(包括頁面及靜態(tài)資源)的操作方法
這篇文章主要介紹了vue項(xiàng)目前端加前綴(包括頁面及靜態(tài)資源)的操作方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-12-12
vue2.0 中使用transition實(shí)現(xiàn)動(dòng)畫效果使用心得
這篇文章主要介紹了vue2.0 中使用transition實(shí)現(xiàn)動(dòng)畫效果使用心得,本文通過案例知識給大家介紹的非常詳細(xì),需要的朋友參考下吧2018-08-08
Vue實(shí)現(xiàn)簡單選項(xiàng)卡功能
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)簡單選項(xiàng)卡功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Vue項(xiàng)目Nginx子目錄部署(Vite和Vue-CLI)
本文主要介紹了Vue項(xiàng)目Nginx子目錄部署(Vite和Vue-CLI),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-05-05

