美文网首页
前端解析 CSV 文件

前端解析 CSV 文件

作者: 云上笔记 | 来源:发表于2021-05-31 17:34 被阅读0次

    项目中有一个需求是上传CSV文件,解析数据然后传给后台,
    打开.CSV 后缀的文件,其格式如下


    CSV.png

    解析过程如下(angular + ngZorro版本)

    <nz-upload [nzBeforeUpload]="beforeUpload" nzAccept=".csv">
          <button nz-button nzSize="small" nzType="primary">
              <i nz-icon nzType="upload"></i>
                  ImportZero Rote data
           </button>
    </nz-upload>
    
     /**
       * 导入 csv 文件
       */
      public beforeUpload = (file: NzUploadFile): boolean => {
        this.onFileChange(file);
        return false;
      }
    
      /**
       * 前端解析 csv 文件
       */
      public onFileChange(file) {
        const reader = new FileReader();
        reader.readAsText(file);
        reader.onload = () => {
          const csvData = reader.result;
          const csvRecordsArray = (csvData as string).split(/\r\n|\n/);
          this.simpleCurveList = this.parseCSVFileData(csvRecordsArray);
    
        };
        reader.onerror = () => {
          console.log('error is occured while reading file!');
        };
      }
    
      /**
       * 转化数组格式
       */
      private parseCSVFileData(csvRecordsArray: any) {
        const csvArr = [];
        for (let i = 1; i < csvRecordsArray.length; i++) {
          const curruntRecord = csvRecordsArray[i].split(',');
          const csvRecord: any = {};
          // 自定义数组对象键名
          csvRecord.date = curruntRecord[0]?.trim();
          csvRecord.maturity_date = curruntRecord[1]?.trim();
          csvRecord.maturity_term = curruntRecord[2]?.trim();
          csvArr.push(csvRecord);
        }
        return csvArr;
      }
    

    相关文章

      网友评论

          本文标题:前端解析 CSV 文件

          本文链接:https://www.haomeiwen.com/subject/dhopjltx.html