文件阅读器无法正确给出某些 csv 文件的结果

问题描述 投票:0回答:1

我是文件阅读器的新手。添加 csv 文件时,文件读取器有时会给出这样的结果

Pillar ID,Pillar Name,Question ID,Question,Question Description,Best Practice ID,Best Practice,Best Practice Description,Risk,Recommendation,Policies\r\n

但有时它会给出这样的结果

Pillar ID,Pillar Name,Question ID,Question,Question Description,Best Practice ID,Best Practice,Best Practice Description,Risk,Recommendation,Policies\r

它没有添加新行,因此内容无法正确解析。在文件中也没有发现任何差异。可能是什么问题,您遇到过吗

没有尝试任何操作,因为这是来自 FileReader API 本身。

angular csv filereader webapi fileapi
1个回答
0
投票

只需在使用内容文件进行工作之前更正它即可

HTML

<input type="file" (change)="onFileSelected($event)" accept=".csv">

TS 从 '@angular/core' 导入 { Component };

@Component({
  selector: 'app-file-reader',
  templateUrl: './file-reader.component.html',
  styleUrls: ['./file-reader.component.css']
})
export class FileReaderComponent {

  constructor() { }

  onFileSelected(event: any) {
    const file: File = event.target.files[0];
    if (file) {
      this.readFile(file);
    }
  }

  readFile(file: File) {
    const reader = new FileReader();

    reader.onload = (e) => {
      let csvData: string = reader.result as string;
      csvData = this.correctLines(csvData);
      console.log(csvData);
    };

    reader.onerror = (e) => {
      console.error('Error occurred while reading the file');
    };

    reader.readAsText(file);
  }
}

private correctLines(data):string {
    let res = data.replace(/\n\r/g, '\r');
    res = res.replace(/\r/g, '\n\r');
    return res;
}
© www.soinside.com 2019 - 2024. All rights reserved.