vue3 vite element-plush 前端读取XLSX 并展示到table

58 阅读1分钟

npm install xlsx <el-upload class="upload-demo" ref="upload" accept=".xls,.xlsx" action="" :on-change="uploadExcel" :show-file-list="false" :auto-upload="false"

<el-button slot="trigger" size="large">导入excel</el-button>

import XLSX from "xlsx"; const menuData: any = ref([]); const tableData: any = ref([]); const uploadExcel = (file: any, fileList: any) => { let files = { 0: file.raw }; const fileReader = new FileReader(); fileReader.onload = (e: any) => { try { const workbook = XLSX.read(e.target.result, { type: "binary", }); const wsname = workbook.SheetNames[0]; // 取第一张表 const ws: any = XLSX.utils.sheet_to_json(workbook.Sheets[wsname]); // 生成json表格内容 const data: any = []; ws.map((item: any) => { let obj: any = { arr: [], }; Object.values(item).map((child: any, index: number) => { obj.arr.push("name" + index); obj[name${index}] = child; }); data.push(obj); }); tableData.value = data; menuData.value = Object.keys(ws[0]); } catch (err) { console.log(err); } }; fileReader.readAsBinaryString(files[0]); };