这个包是个npm包,这里使用的版本为:
“xlsx”: “^0.14.5”
首先,在文件中引入:
importXLSXfrom'xlsx';
然后在upload组件的beforeUpload中使用:
beforeUpload(files){constreadFile=file=>{const[fileReader, data1]=[newFileReader(),{}];let[binaryData, workbook]=[null,null]; fileReader.onload=e=>{ binaryData= e.target.result; workbook=XLSX.read(binaryData,{type:'binary'}); Object.keys(workbook.Sheets).forEach(sheet=>{ data1[sheet]=XLSX.utils.sheet_to_json(workbook.Sheets[sheet],{header:1}).slice(1);}); workbook.SheetNames.forEach(sheetName=>{const dataSheet= data1[sheetName];for(let index=0; index< dataSheet.length; index+=1){const row= dataSheet[index];const item={name: row[0]? row[0]:null,snCode: row[1]? row[1]:null,macAddress: row[2]? row[2]:null,ipAddress: row[3]? row[3]:null,number:Number(row[4]? row[4]:null),podium:(row[5]? row[5]:null)==='是'?true:false,devices:[{ipAddress: row[6]? row[6]:null,location:'top1'},{ipAddress: row[7]? row[7]:null,location:'side1'},{ipAddress: row[8]? row[8]:null,location:'front1'},{ipAddress: row[9]? row[9]:null,location:'front2'},]}; fileData.push(item);}});// fileData即为表格数据if(fileData.length>0){ that.setState({tables: fileData,}); message.success('导入成功!');}else{ message.error('导入失败!')}}; fileReader.readAsBinaryString(file);};readFile(uploadFile);