javascript - 如何逐行读取angular2上的csv文件

标签 javascript jquery angular typescript csv

我正在用 angular2 编写一个应用程序,它读取一个 csv 文件,只需在 html 中输入:

<input type='file' name='userFile' id='file' >

我可以访问 component.ts 中的文件:

ngOnInit() {

   var input = (<HTMLInputElement>document.getElementById("file"));
   input.addEventListener("change", function(event) {
      var files = input.files;
      var len = files.length;

         if (len) {
          console.log("Filename: " + files[0].name);
          console.log("Type: " + files[0].type);
          console.log("Size: " + files[0].size + " bytes");
    
         }

      }, false);

}

如何逐个单元地读取使用 typescript、JavaScript 或 jQuery 上传的 csv 文件? (这是最好的方法)。

最佳答案

这是一个示例实现 Angular 方式( Angular 版本 2+):

@Component({
  selector: 'app-my-file',
  template: `
   <div class="form-group">
        <input type="file" (change)="onFileSelect($event.target)" name="myfile">
   </div>
  `,
  styles: [``]
})
export class YourComponent implements OnInit {

    csvContent: string;
    
    constructor(){}
    ngOnInit(){
    }

    onFileLoad(fileLoadedEvent) {
            const textFromFileLoaded = fileLoadedEvent.target.result;              
            this.csvContent = textFromFileLoaded;     
            // alert(this.csvContent);
    }

    onFileSelect(input: HTMLInputElement) {
    
      const files = input.files;
      var content = this.csvContent;    
      if (files && files.length) {
         /*
          console.log("Filename: " + files[0].name);
          console.log("Type: " + files[0].type);
          console.log("Size: " + files[0].size + " bytes");
          */
          
          const fileToRead = files[0];
          
          const fileReader = new FileReader();
          fileReader.onload = this.onFileLoad;

          fileReader.readAsText(fileToLoad, "UTF-8");
      }
              
    }
}

Try it on StackBlitz

关于javascript - 如何逐行读取angular2上的csv文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46744611/

相关文章:

javascript - 自己的 RTE - 获取和设置选择样式

javascript - 从主干集合加载完整日历事件会破坏下一个和上一个功能

javascript - 当选中单选按钮时将类添加到父 div 并在选中其他单选按钮时删除类

javascript - TypeScript:按顺序发送多个 HTTP 请求 Angular2

javascript - “app-element”不是已知的 Angular 元素

angular - Docker Angular运行脚本问题

javascript - 使用 javascript 将 DIV 添加到弹出窗口

javascript - elevatezoom 上带有悬停选择器的图库图像

javascript - 具有 onmouseenter/leave 事件的多个类?

javascript - Highcharts 上不同列的不同 X 值