前端解析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   久居我梦  阅读(45)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示