elementUI+Springboot實現(xiàn)導出excel功能的全過程
前言
在前面,我們其實已經(jīng)完成了elementUI+springboot的導入功能
springboot實現(xiàn)上傳并解析Excel過程解析
那么,現(xiàn)在也對這個導出功能進行一個匯總整理寫出來
其實,導出功能相對導入功能還是比較簡單,本次不需要考慮到后端
步驟
依賴包
首先,我們需要引入vue的依賴包
我用的是這個
npm install xlsx@^0.16.0 npm install file-saver@^2.0.2
其中xlsx依賴的作用為:將數(shù)據(jù)進行處理為excel工作簿file-saver依賴的作用為:將文件進行一個保存導出來
element表格table
這里,實際上是用的elemenetUI的表格table標簽,獲取到數(shù)據(jù),因此,我們需要對表格添加一個選擇器
在我的項目中,我是添加了一個id:exportExcel
<el-table :data="tableData" id="exportExcel" border style="width: 100%"></el-table>
tableData為自定義的接收后端傳過來的數(shù)據(jù)的變量
引入包
然后,在你需要編寫導出功能的頁面,進行引入
具體如下:
import XLSX from "xlsx"; import FileSaver from "file-saver";
編寫方法
以下代碼中,有一個
var xlxsParam = { raw: true };
這個的作用是不對數(shù)據(jù)進行處理
主要目的是為了防止把日期這種數(shù)據(jù)處理掉,導致顯示出錯
// 導出
exportExcelData() {
var xlxsParam = { raw: true };
// 從表中生成工作簿
var wb = XLSX.utils.table_to_book(
document.querySelector("#exportExcel"),
xlxsParam
);
// 獲取二進制字符串作為輸出
var wbOut = XLSX.write(wb, {
bookType: "xlsx",
bookSST: true,
type: "array",
});
try {
FileSaver.saveAs(
// Blob 對象表示一個不可變、原始數(shù)據(jù)的類文件對象
// Blob 表示的不一定是js的原生格式數(shù)據(jù)
// File 接口基于Blob,
// 返回一個新創(chuàng)建的Blob對象,其內(nèi)容由參數(shù)中給定的數(shù)組串聯(lián)
new Blob([wbOut], { type: "application/octet-stream" }),
// 導出文件名稱
"文件名稱.xlsx"
);
} catch (e) {
// 捕捉報錯
if (typeof console != "undefined") {
console.log(e, wbOut);
}
}
// 將結(jié)果返回出來,導出文件
return wbOut;
},
完整實例
完整實例如下:
<!--頁面-->
<template>
<div>
<!--導出按鈕-->
<el-button type="primary" @click="exportExcelData()">導出</el-button>
<!--table數(shù)據(jù)-->
<el-table :data="tableData" id="exportExcel" border style="width: 100%">
<el-table-column
label="字段1"
type="字段名稱"
align="center"
></el-table-column>
<el-table-column
prop="字段2"
label="字段名稱"
align="center"
></el-table-column>
</el-table>
</div>
<template>
<!--邏輯-->
<script>
// 引入依賴
import FileSaver from "file-saver";
import XLSX from "xlsx";
export default {
name: "newStaffRecord",
data() {
return {
tableData: [], // 接收的后端數(shù)據(jù)變量
};
},
methods: {
// 導出
exportExcelData() {
var xlxsParam = { raw: true };
// 從表中生成工作簿
var wb = XLSX.utils.table_to_book(
document.querySelector("#exportExcel"),
xlxsParam
);
// 獲取二進制字符串作為輸出
var wbOut = XLSX.write(wb, {
bookType: "xlsx",
bookSST: true,
type: "array",
});
try {
FileSaver.saveAs(
// Blob 對象表示一個不可變、原始數(shù)據(jù)的類文件對象
// Blob 表示的不一定是js的原生格式數(shù)據(jù)
// File 接口基于Blob,
// 返回一個新創(chuàng)建的Blob對象,其內(nèi)容由參數(shù)中給定的數(shù)組串聯(lián)
new Blob([wbOut], { type: "application/octet-stream" }),
// 導出文件名稱
"新人培訓記錄.xlsx"
);
} catch (e) {
if (typeof console != "undefined") {
console.log(e, wbOut);
}
}
return wbOut;
},
}
}
</script>
最終導出結(jié)果
在我的項目需要做一個新人培訓記錄查詢導入的功能,于是最終界面樣式為這樣

實際導出后的結(jié)果為:

為保持隱私,我把姓名數(shù)據(jù)去掉了

結(jié)語
以上為elementUI實現(xiàn)導出功能的過程
到此這篇關于elementUI+Springboot實現(xiàn)導出excel功能的文章就介紹到這了,更多相關elementUI Springboot導出excel內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
解決Vuepress碼云部署及自動跳轉(zhuǎn)404的問題
這篇文章主要介紹了解決Vuepress碼云部署及自動跳轉(zhuǎn)404的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
Vue優(yōu)化:常見會導致內(nèi)存泄漏問題及優(yōu)化詳解
這篇文章主要介紹了Vue優(yōu)化:常見會導致內(nèi)存泄漏問題及優(yōu)化詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
vue中provide和inject的用法及說明(vue組件爺孫傳值)
這篇文章主要介紹了vue中provide和inject的用法及說明(vue組件爺孫傳值),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05
Vue使用codemirror實現(xiàn)一個可插入自定義標簽的textarea
這篇文章主要為大家詳細介紹了Vue如何使用codemirror實現(xiàn)一個可插入自定義標簽的textarea,感興趣的小伙伴可以跟隨小編一起學習一下2024-02-02
關于vue-router的beforeEach無限循環(huán)的問題解決
本篇文章主要介紹了關于vue-router的beforeEach無限循環(huán)的問題解決,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-09-09
vuex中數(shù)據(jù)持久化插件vuex-persistedstate使用詳解
這篇文章主要介紹了vuex中數(shù)據(jù)持久化插件vuex-persistedstate使用詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03

