首页 > 解决方案 > 如何上传excel文件并验证列是否有效

问题描述

我想上传一个 excel 文件并验证这些列并获得该列是否有效的警报请好心让我知道如何通过 Angular 7 实现它。:D

标签: excelangular

解决方案


您已经使用FileReader读取文件。这是一个小例子

bulkUploadField: any;
convertFile(csvfile: any) {   
this.bulkUploadField = csvfile.target.files[0];
let reader: FileReader = new FileReader();   reader.readAsText(this.bulkUploadField);  
let lastIndex = 0; 
this.csvData = [];
reader.onload = (e) => {  
  console.log('csv file uploaded and coming to onload')
  let csv: any = reader.result;
  let allTextLines = csv.split(/\n/);  
  this.csvHeader = allTextLines[0].split(',');
  if(!(this.csvHeader[0].toLowerCase().trim()  == 'title' &&
  this.csvHeader[1].toLowerCase().trim()  == 'contact_name'))
  {
    this.toast.show('Uploaded data is not in proper format','error');
    return;
  }
  let errorMsg = ""
  for (let i = 1; i < allTextLines.length - 1; i++) {
    let data = allTextLines[i].split(',');
    let unname = new RegExp("^[a-zA-Z0-9_ ]*$")
    if(!unname.test(data[1]))
    {
      errorMsg = "Uploaded File contains wrong format for contact name at row no -" + i.toString() + " :" + data[1];
      this.toast.show(errorMsg,'error');
      this.isFileUploaded = false
      return
    }
   }
  }
 }

在输入栏的点击功能中使用转换文件功能

<input #bulkUploadFile type="file" (change)="convertFile($event)" accept=".csv" mdbFileSelect  >

希望这会有所帮助


推荐阅读