vue3+ts+elem后台完成excel转换成数组:
例如:项目场景:商品信息批量录入
代码
可直接复制粘贴使用:首先npm install xlsx
<script setup lang="ts">
import * as XLSX from "xlsx";
function beforeUpdate(file:any) {
var reader = new FileReader();
let arr:any=[];
reader.readAsBinaryString(file.raw)
reader.onload =(e) =>{
const data =e.target?.result
const wb=XLSX.read(data,{type:"binary"});
const wsname =wb.SheetNames[0];
const ws=wb.Sheets[wsname];
var result = XLSX.utils.sheet_to_json(ws,{header:1});
result.forEach((item:any,index:any) =>{
if(index >=1){
let obj={ //自己定义所需表格参数名
id: item[0],
name: item[1],
userphone: item[2],
number: item[3],
price: item[4],
sales: item[5],
count: item[6],
active: item[7],
mid: item[8],
};
arr.push(obj)
state.resultlist.push.apply(state.resultlist,arr)//把arr数据传入自己定义的数组
}
});
console.log(arr)
console.log(state.resultlist)
};
}
</script>
<template>
<div>
<el-upload
class="upload-demo"
action=""
drag
:auto-upload="false"
:on-change="beforeUpdate"
:limit="1"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
</el-upload>
</div>
</template>
原因分析:
提示:这里填写问题的分析: