2017-02-04 8 views
0

Ich verwende Angular 2 + Angular CLI, um eine App zu erstellen. Ich fand diese coole Bibliothek 'csvtojson', die genau das tut, was ich wollte, basierend auf der Demo Also versuche ich es in mein Projekt aufzunehmen. Wie auch immer, meine erste Frage ist, ist es möglich, diese Bibliothek in mein Projekt aufzunehmen, da ich nicht sehe, dass es für Angular 2 gebaut wird? Wenn nein ... bedeutet das, dass ich einfach nur wegsehen und traurig sein kann?Verwenden der externen Bibliothek für Angular 2

Wenn ja ... wie würde ich es implementieren. Was habe ich getan unten funktioniert nicht

1. npm i --save csvtojson 
2. inside app.module.ts 
    import { csvtojson } from 'csvtojson' 
    providers: [ 
     {{...}} 
     csvtojson //test 
    ], 

3. app.component.ts 
    import { csvtojson } from 'csvtojson' 
    constructor(private csvToJson: csvtojson) { } 
    this.csvToJson.csv({ noheader: true }) 
     .fromString(data) 
     .on('csv', (csvRow) => { // this func will be called 3 times 
      console.log('afasf',csvRow) // => [1,2,3] , [4,5,6] , [7,8,9] 
     }) 
     .on('done',() => { 
      //parsing finished 
     }) 

Und ich bekomme diese Fehlermeldung

ERROR in ./~/csvtojson/libs/core/workerMgr.js Module not found: Error: Can't resolve 'child_process' in '/Users/james/Desktop/web-app/nod e_modules/csvtojson/libs/core'

Antwort

0

weil diese Libs ausführen müssen auf Knoten-Server können Sie nicht child_process in Browser.

für Browser, könnte diese Lösung helfen Ihnen https://www.bennadel.com/blog/1504-ask-ben-parsing-csv-strings-with-javascript-exec-regular-expression-command.htm

+0

bedeutet das diese Bibliothek einfach aus meiner Reichweite ist? – user172902

+0

für den Browser können Sie diese Lösung https://www.bennadel.com/blog/1504-ask-ben-parsing-csv-strings-with-javascript-exec-regular-expression-command.htm verwenden –

0

Keine Notwendigkeit für externe Bibliothek.

Hier Plunker für csvTOjson Arbeits

import {Component, NgModule} from '@angular/core' 
    import {BrowserModule} from '@angular/platform-browser' 

    import { Component } from '@angular/core'; 

    @Component({ 
     selector: 'my-app', 
     templateUrl: './app.html' 
    }) 
    export class AppComponent { 
     title = 'csvTOjson works!'; 
     text : any ; 
     JSONData : any; 
     csvJSON(csvText) { 
     var lines = csvText.split("\n"); 

     var result = []; 

     var headers = lines[0].split(","); 
     console.log(headers); 
     for (var i = 1; i < lines.length-1; i++) { 

      var obj = {}; 
      var currentline = lines[i].split(","); 

      for (var j = 0; j < headers.length; j++) { 
       obj[headers[j]] = currentline[j]; 
      } 

      result.push(obj); 

     } 

     //return result; //JavaScript object 
     console.log(JSON.stringify(result)); //JSON 
     this.JSONData = JSON.stringify(result); 
    } 

    convertFile(input) { 

    const reader = new FileReader(); 
    reader.readAsText(input.files[0]); 
    reader.onload =() => { 
     let text = reader.result; 
     this.text = text; 
     console.log(text); 
     this.csvJSON(text); 
    }; 

    } 
    } 


    @NgModule({ 
     imports: [ BrowserModule ], 
     declarations: [ AppComponent ], 
     bootstrap: [ AppComponent ] 
    }) 
    export class AppModule {} 
Verwandte Themen