2016-07-30 5 views
-1

Ich arbeite am NodeJS-Projekt, in dem ich die CSV-Datei erfolgreich hochlade und lese.Ermitteln der Gesamtanzahl von CSV-Spalten mit NodeJS

Jetzt möchte ich die Gesamtzahl der Spalten in der CSV-Datei extrahieren und die Daten entsprechend lesen.

Ich habe die Anzahl der CSV Nodejs Module wie Fast-CSV, CSV, Ya-CSV verwendet. Ich bin jedoch nicht in der Lage, die Gesamtzahl der Spalten und die Daten der Spalten mit diesen Modulen zu extrahieren. Es wäre eine große Hilfe, wenn Sie mir helfen könnten, die Gesamtzahl der Spalten zu verstehen und nach dieser Operation die Spalten nacheinander zu lesen.

+0

* "Ich bin jedoch nicht in der Lage, die Gesamtzahl der Spalten [...] mit diesen Modulen zu extrahieren" * - was genau bedeutet das? Das typische CSV-Modul gibt Ihnen ein Array für jede Zeile in der CSV, und dieses Array hat eine "Länge", und diese Länge ist die Anzahl der Spalten in der Datei. Sie sollten auch den Code posten, den Sie haben, damit wir sehen können, wie Sie es gerade versuchen. – Tomalak

+0

Ja, ich suchte nach der Gesamtzahl der Spalten und extrahierte die Daten dieser bestimmten Spalte. –

Antwort

0

würde ich https://github.com/wdavidw/node-csv-parse, mit drei Zeilen Code empfehlen Sie können Sie CSV analysieren in einem Array von Objekten Datei:

var parse = require('csv-parse/lib/sync'); 
var yourCSVFile = '"column_1","column_2"\n"value 1","value 2"\n"value 3","value 4"'; 
var records = parse(yourCSVFile, {columns: true}); 

dann die Spalten Ausbrechen ist einfach:

var columnResults = {}; 

for(var row =0; row < records.length; row++){ 
    for(var column in records[row]){ 
     if(!columnResults[column]){ 
      columnResults[column] = []; 
     } 
     columnResults[column].push(records[row][column]); 
    } 
} 
console.log("Number of columns:", Object.keys(columnResults).length); 
console.log("Column names:", Object.keys(columnResults)); 
console.log("Column data:", columnResults); 

Ausgang:

C: \ Knoten test.js
Anzahl der C Spalten: 2
Spaltennamen: ['Spalte_1', 'Spalte_2']
Spaltendaten: {Spalte_1: ['Wert 1', 'Wert 3'], Spalte_2: ['Wert 2', 'Wert 4'] }