前端解析xlxs导入数据

 

uploadCondition(file){
      const reader = new FileReader();
      let flag = true;
      reader.onload = (e)=>{
        const data = new Uint8Array(e.target.result);
        const workbook = XLSX.read(data,{type:'array'});
          // 获取第一个工作表的名字
        const firstSheetName = workbook.SheetNames[0];
        // 读取第一个工作表
        const worksheet = workbook.Sheets[firstSheetName];
        // 将工作表转换为 JSON 对象数组
        let jsonData = XLSX.utils.sheet_to_json(worksheet, {header: 1,defval:null});
        // 获取合并单元格的信息
        const merges = worksheet['!merges'];
        if(jsonData[0][0]!='评测题目'&&jsonData[0][1]!='题目选项' && this.templateType===1){
          this.msg("请上传正确模板",0);
          jsonData = [];
          flag = false;
        }
        if(jsonData[0][0]!='评测结果'&&jsonData[0][1]!='结果说明' && this.templateType===2){
          this.msg("请上传正确模板",0);
          jsonData = [];
          flag = false;
        }
        // 判断合并单元格是否为空
        if(this.templateType === 1){
          for(let i=0;i<merges.length;i++){
            let rT = merges[i].s.r;
            let sT = merges[i].e.r
            if(jsonData[rT][0]===null){
              this.msg(`单元格第${sT}行为空`,0);
              jsonData = [];
              flag = false;
              break;
            }
          };
        }
        if(flag){
          jsonData.shift();
          this.ExcelArr.push({
            fileName:file.name,
            fileContent:jsonData
          });
        }
      }
      reader.readAsArrayBuffer(file);
      return flag;
    },

 

posted on 2024-02-29 10:19  久居我梦  阅读(21)  评论(0编辑  收藏  举报

导航