在Vue中導(dǎo)入并讀取Excel數(shù)據(jù)的操作步驟
一、引入依賴
npm install -S file-saver xlsx npm install -D script-loader npm install xlsx
二、在main.js中引入
import XLSX from 'xlsx'
三、創(chuàng)建vue文件
<div> <el-upload class="upload-demo" action="" :on-change="handleChange" :on-remove="handleRemove" :on-exceed="handleExceed" :limit="limitUpload" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel" :auto-upload="false"> <!-- 只 能 上 傳 xlsx / xls 文 件 --> <el-button size="small" type="primary">點(diǎn)擊上傳</el-button> </el-upload> <!-- 數(shù)據(jù)展示 --> <el-main> <el-table :data="da"> <el-table-column prop="code" label="編號"> </el-table-column> <el-table-column prop="name" label="姓名"> </el-table-column> <el-table-column prop="pro" label="省份"> </el-table-column> <el-table-column prop="cit" label="城市"> </el-table-column> <el-table-column prop="dis" label="區(qū)縣"> </el-table-column> </el-table> </el-main> </div>
四、核心方法
handleChange(file, fileList){ this.fileTemp = file.raw; if(this.fileTemp){ if((this.fileTemp.type == 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') || (this.fileTemp.type == 'application/vnd.ms-excel')){ this.handleExcel(this.fileTemp); } else { this.$message({ type:'warning', message:'文件格式錯誤,請刪除后重新上傳!' }) } } else { this.$message({ type:'warning', message:'請上文件!' }) } }, handleExcel(fileTemp) { let _this = this; this.file = fileTemp; var rABS = false; //是否將文件讀取為二進(jìn)制字符串 var f = this.file; var reader = new FileReader(); FileReader.prototype.readAsBinaryString = function(f) { var binary = ""; var rABS = false; //是否將文件讀取為二進(jìn)制字符串 var wb; //讀取完成的數(shù)據(jù) var outdata; var reader = new FileReader(); reader.onload = function(e) { var bytes = new Uint8Array(reader.result); var length = bytes.byteLength; for (var i = 0; i < length; i++) { binary += String.fromCharCode(bytes[i]); } var XLSX = require("xlsx"); if (rABS) { wb = XLSX.read(btoa(fixdata(binary)), { //手動轉(zhuǎn)化 type: "base64" }); } else { wb = XLSX.read(binary, { type: "binary" }); } outdata = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]); //outdata就是你想要的東西 console.log('未處理的原始數(shù)據(jù)如下:'); console.log(outdata); //此處可對數(shù)據(jù)進(jìn)行處理 let arr = []; outdata.map(v => { let obj = {} obj.code = v['code'] obj.name = v['name'] obj.pro = v['province'] obj.cit = v['city'] obj.dis = v['district'] arr.push(obj) }); _this.da=arr; _this.dalen=arr.length; return arr; }; reader.readAsArrayBuffer(f); }; if (rABS) { reader.readAsArrayBuffer(f); } else { reader.readAsBinaryString(f); } }
結(jié)果展示
到此這篇關(guān)于在Vue中導(dǎo)入并讀取Excel數(shù)據(jù)的流程步驟的文章就介紹到這了,更多相關(guān)Vue導(dǎo)入并讀取Excel數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Vue實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入的四種方法(resource、Axios、Fetch、Excel導(dǎo)入)
- Vue3實(shí)現(xiàn)動態(tài)導(dǎo)入Excel表格數(shù)據(jù)的方法詳解
- Vue導(dǎo)入excel表,導(dǎo)入失敗的數(shù)據(jù)自動下載
- 在Vue里如何把網(wǎng)頁的數(shù)據(jù)導(dǎo)出到Excel的方法
- vue中后端做Excel導(dǎo)出功能返回?cái)?shù)據(jù)流前端的處理操作
- Vue2.0實(shí)現(xiàn)將頁面中表格數(shù)據(jù)導(dǎo)出excel的實(shí)例
相關(guān)文章
Vue CLI3搭建的項(xiàng)目中路徑相關(guān)問題的解決
這篇文章主要介紹了Vue CLI3搭建的項(xiàng)目中路徑相關(guān)問題的解決,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-09如何使用el-cascader組件寫下拉級聯(lián)多選及全選功能
這篇文章主要介紹了如何使用el-cascader組件寫下拉級聯(lián)多選及全選功能,因?yàn)槭怯腥x的功能,所以不能直接使用el-cascader組件,?而是選擇使用el-select組件,?在此組件內(nèi)部使用el-cascader-panel級聯(lián)面板,感興趣的朋友跟隨小編一起看看吧2024-03-03Vue使用localStorage存儲數(shù)據(jù)的方法
這篇文章主要為大家詳細(xì)介紹了Vue使用localStorage存儲數(shù)據(jù)的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-05-05Element-UI中關(guān)于table表格的那些騷操作(小結(jié))
這篇文章主要介紹了Element-UI中關(guān)于table表格的那些騷操作(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08VUE使用vue-tree-color組件實(shí)現(xiàn)組織架構(gòu)圖并可以動態(tài)更新數(shù)據(jù)的效果
本文主要介紹了如何在Vue中使用vue-tree-color組件實(shí)現(xiàn)組織架構(gòu)圖,并詳細(xì)介紹了如何實(shí)現(xiàn)數(shù)據(jù)的動態(tài)加載,在動態(tài)加載數(shù)據(jù)時,要確保數(shù)據(jù)更新是在Vue的響應(yīng)式系統(tǒng)能捕獲到的情況下進(jìn)行的2024-10-10el-upload http-request使用 多個文件上傳攜帶其他參數(shù)方式
這篇文章主要介紹了el-upload http-request使用 多個文件上傳攜帶其他參數(shù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-04-04Vue router錯誤跳轉(zhuǎn)到首頁("/")的問題及解決
這篇文章主要介紹了Vue router錯誤跳轉(zhuǎn)到首頁("/")的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10