安装 js-xlsx npm i js-xlsx 完成后引入
import * as XLSX from 'xlsx';
也可以全局引入,不过我这里不需要
上代码
HTML部分
<template>
<div style="padding: 20px">
<div>
<input type="file" @change="readLocalFile" accept="*.xls" id="files"/>
</div>
<h1>合格的</h1>
<div id="demo"></div>
<h1>不合格的</h1>
<div id="demo1"></div>
</div>
</template>
然后是JS部分
<script>
import * as XLSX from 'xlsx';
export default {
name: 'systemCallerCenter',
data(){
return{
list:[]
}
},
mounted() {
},
methods: {
readLocalFile(file, callback) {
var wb;
var rABS = false;
var xsl = file.target.files[0]
var reader = new FileReader();
reader.readAsArrayBuffer(xsl, { type: 'binary' });
reader.onload = function(e) {
console.log(e.target.result,1111111111111111)
var data = e.target.result;
if(rABS) {
wb = XLSX.read(btoa(fixdata(data)), {
type: 'base64'
});
} else {
wb = XLSX.read(data, {
type: 'binary'
});
}
console.log(XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]),'测试表格数据--JOSON')
}
var arr = []
var arr1 = []
setTimeout(()=>{
this.list = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]])
if(this.list.length>0){
var reg_tel = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/
this.list.forEach(item=>{
if(reg_tel.test(item['联系电话']) && item['联系电话'] !=''){
arr.push(item)
}else{
arr1.push(item)
}
})
}
document.getElementById("demo").innerHTML= JSON.stringify(arr );
document.getElementById("demo1").innerHTML= JSON.stringify(arr1 );
},2000)
}
}
}
</script>
运行结果
其实也很简单,首先选择一个excel文件,应为是无法直接拿到文件地址的,所以就直接选择拿取二进制文件流,然后通过转换,利用js-xlsx,即可直接转为需要的东西,所以js-xlsx这个东西还是很好用的。过程中做了一些文件读取后格式的判断不必要但是暂时留着了QAQ。
我是小柏,一个前端菜鸟,希望对读者有帮助