在Vue中導(dǎo)入并讀取Excel數(shù)據(jù)的操作步驟
一、引入依賴(lài)
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="編號(hào)">
</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:'文件格式錯(cuò)誤,請(qǐng)刪除后重新上傳!'
})
}
} else {
this.$message({
type:'warning',
message:'請(qǐng)上文件!'
})
}
},
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)), {
//手動(dòng)轉(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);
//此處可對(duì)數(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Vue實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入的四種方法(resource、Axios、Fetch、Excel導(dǎo)入)
- Vue3實(shí)現(xiàn)動(dòng)態(tài)導(dǎo)入Excel表格數(shù)據(jù)的方法詳解
- Vue導(dǎo)入excel表,導(dǎo)入失敗的數(shù)據(jù)自動(dòng)下載
- 在Vue里如何把網(wǎng)頁(yè)的數(shù)據(jù)導(dǎo)出到Excel的方法
- vue中后端做Excel導(dǎo)出功能返回?cái)?shù)據(jù)流前端的處理操作
- Vue2.0實(shí)現(xiàn)將頁(yè)面中表格數(shù)據(jù)導(dǎo)出excel的實(shí)例
相關(guān)文章
VUE使用echarts?5.0以上版本渲染器未導(dǎo)入錯(cuò)誤問(wèn)題
這篇文章主要介紹了VUE使用echarts?5.0以上版本渲染器未導(dǎo)入錯(cuò)誤問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
使用Vue3+Vant組件實(shí)現(xiàn)App搜索歷史記錄功能(示例代碼)
最近接了個(gè)項(xiàng)目需要開(kāi)發(fā)一個(gè)app項(xiàng)目,由于是第一次接觸這種app開(kāi)發(fā),經(jīng)過(guò)一番思考,決定使用Vue3+Vant前端組件的模式進(jìn)行開(kāi)發(fā),下面把問(wèn)題分析及實(shí)現(xiàn)代碼分享給大家,需要的朋友參考下吧2021-06-06
vue elementui select標(biāo)簽監(jiān)聽(tīng)change事件失效問(wèn)題
這篇文章主要介紹了vue elementui select標(biāo)簽監(jiān)聽(tīng)change事件失效問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04
基于Vue+Openlayer實(shí)現(xiàn)動(dòng)態(tài)加載geojson的方法
本文通過(guò)實(shí)例代碼給大家介紹基于Vue+Openlayer實(shí)現(xiàn)動(dòng)態(tài)加載geojson的方法,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-09-09
淺談vuejs實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)視圖原理
這篇文章主要介紹了淺談vuejs實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)視圖原理,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
npm安裝vue腳手架報(bào)錯(cuò)警告npm WARN deprecated
安裝vue腳手架報(bào)錯(cuò)可能具體原因比較多,可以根據(jù)報(bào)錯(cuò)信息進(jìn)行排查,本文主要介紹了npm安裝vue腳手架報(bào)錯(cuò)警告npm WARN deprecated,感興趣的可以了解一下2023-11-11
Vue 組件(component)教程之實(shí)現(xiàn)精美的日歷方法示例
組件是我們學(xué)習(xí)vue必須會(huì)的一部分,下面這篇文章主要給大家介紹了關(guān)于Vue 組件(component)教程之實(shí)現(xiàn)精美的日歷的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-01-01
vue 綁定對(duì)象,數(shù)組之?dāng)?shù)據(jù)無(wú)法動(dòng)態(tài)渲染案例詳解
這篇文章主要介紹了vue 綁定對(duì)象,數(shù)組之?dāng)?shù)據(jù)無(wú)法動(dòng)態(tài)渲染案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-09-09

