antd组件upload上传xlsx文件,并读取文件内容

2022年9月6日13:14:47

xlsx包

这个包是个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);
  • 作者:不会秃头
  • 原文链接:https://blog.csdn.net/qq_38499019/article/details/125301975
    更新时间:2022年9月6日13:14:47 ,共 1213 字。