Arbeiten mit CSV in JavaScript (Node.js): Bibliotheken und Werkzeuge

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Arbeiten mit CSV in JavaScript (Node.js): Bibliotheken und praktische Beispiele



CSV (Comma-Separated Values) ist eines der am weitesten verbreiteten Formate für den Austausch von Tabellendaten. Im Node.js-Ökosystem gibt es mehrere ausgereifte Bibliotheken, die das effiziente Lesen, Verarbeiten und Erstellen von CSV-Dateien ermöglichen. In diesem Artikel betrachten wir die wichtigsten Werkzeuge, ihre Möglichkeiten und geben praktische Codebeispiele.



Beliebte Bibliotheken für die Arbeit mit CSV



1. csv-parser — schneller Stream-Parser

Diese Bibliothek ist der Standard zum Lesen von CSV in Node.js. Sie arbeitet im Stream-Modus, wodurch Dateien beliebiger Größe verarbeitet werden können, ohne sie vollständig in den Speicher laden zu müssen.



Installation:

npm install csv-parser


Beispiel zum Lesen einer CSV-Datei:

const fs = require('fs');const csv = require('csv-parser');

const results = [];

fs.createReadStream('data.csv') .pipe(csv()) .on('data', (row) => { results.push(row); }) .on('end', () => { console.log('CSV erfolgreich gelesen'); console.log(results.slice(0, 3)); // Erste 3 Datensätze });


Wichtige Merkmale:

  • Unterstützung benutzerdefinierter Trennzeichen (Standard ist Komma)
  • Automatische Erkennung von Kopfzeilen aus der ersten Zeile
  • Möglichkeit, leere Zeilen zu überspringen
  • Geringer Speicherverbrauch durch Stream-Verarbeitung


2. csv-stringify — Erstellung von CSV aus Objekten

Dieses Werkzeug ist Teil der csv-Familie und dient zur Generierung von CSV-Strings oder -Streams aus JavaScript-Objekten.



Installation:

npm install csv-stringify


Beispiel zum Schreiben von Daten in CSV:

const { stringify } = require('csv-stringify');const fs = require('fs');

const data = [ { name: 'Anna', age: 28, city: 'Moskau' }, { name: 'Ivan', age: 35, city: 'Sankt Petersburg' }, { name: 'Olga', age: 22, city: 'Kasan' }];

const writableStream = fs.createWriteStream('output.csv');const stringifier = stringify({ header: true });

stringifier.pipe(writableStream);data.forEach(row => stringifier.write(row));stringifier.end();

console.log('Datei output.csv erstellt');


Möglichkeiten:

  • Automatisches Escapen von Sonderzeichen (Anführungszeichen, Kommas)
  • Einstellung des Spaltentrennzeichens
  • Unterstützung benutzerdefinierter Kopfzeilen
  • Arbeit im synchronen und asynchronen Modus


3. csv-writer — einfache und intuitive API

Diese Bibliothek bietet eine einfachere Schnittstelle zum Schreiben von CSV, insbesondere wenn Sie mit kleineren Datenmengen arbeiten.



Installation:

npm install csv-writer


Beispiel zum Schreiben:

const createCsvWriter = require('csv-writer').createObjectCsvWriter;

const csvWriter = createCsvWriter({ path: 'users.csv', header: [ { id: 'id', title: 'ID' }, { id: 'name', title: 'Name' }, { id: 'email', title: 'Email' } ]});

const records = [ { id: 1, name: 'Alexej', email: 'alex@example.com' }, { id: 2, name: 'Maria', email: 'maria@example.com' }];

csvWriter.writeRecords(records) .then(() => console.log('CSV-Datei erstellt'));


Fortgeschrittene Anwendungsszenarien



Verarbeitung großer Dateien mit Datentransformation

Kombinieren wir Lesen und Schreiben in einem Stream zur Datenverarbeitung im laufenden Betrieb:



const fs = require('fs');const csv = require('csv-parser');const { stringify } = require('csv-stringify');

const readStream = fs.createReadStream('input.csv');const writeStream = fs.createWriteStream('output_transformed.csv');const stringifier = stringify({ h

Empfehlungen