1.安装插件 npm install xlsx
import xlsx from 'xlsx'
//:action:'' :auto-upload="false" 不传给后端 accept=".xlsx"限制格式
//:on-change="onChange"文件状态改变时触发事件
<el-upload :action="" accept=".xlsx" :on-change="onChange" :auto-upload="false"></el-upload>
methods:{
upload(file){
return new Promise(resolve=>{
let reader = new FileReader()
reader.readAsBinaryString(file);
reader.onload = ev=>{
resolve(ev.target.result)
}
})
},
async onChange(ev){
var testmsg=ev.name.substring(ev.name.lastIndexOf('.')+1)
//const extension = testmsg === 'xls'
const extension2 = testmsg === 'xlsx'
// const isLt2M = ev.size / 1024 / 1024 < 10
if(!extension2) {
this.$message({
message: '上传文件只能是 xls、xlsx格式!',
type: 'warning'
});
}
// if(!isLt2M) {
// this.$message({
// message: '上传文件大小不能超过 10MB!',
// type: 'warning'
// });
// }
if(extension2) {
let file = ev.raw
if (!file) return
let reader = await this.upload(file)
const worker = xlsx.read(reader, { type: 'binary' })
console.log(worker)
// 这个是将数据进行一步拼接
// worker.Sheets[worker.SheetNames[0]]
// 将返回的数据转换为json对象的数据
reader = xlsx.utils.sheet_to_json( worker.Sheets[worker.SheetNames[0]])
console.log(reader);
}
}
}
目前只试了.xlsx格式,注意如果解析出来为空,看看是不是文件格式不对