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-parserBeispiel 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-stringifyBeispiel 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-writerBeispiel 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 Auch in der Bibliothek
Verwaltung der Konfiguration von TypeScript-Anwendungen: Vollständiger Leitfaden
Arbeiten mit Excel in C# (.NET): Bibliotheken EPPlus und ClosedXML
Viper für Go: Vollständiger Leitfaden mit Beispielen
Lottie für Swift: Das komplette Tutorial mit Beispielen
Arbeiten mit Markdown in Kotlin: Bibliotheken und Parser