JavaScript:
Arbeiten mit CSV
Wie geht das:
JavaScript verfügt nicht über integrierte CSV-Parsing- oder Stringifying-Funktionen wie bei JSON. Jedoch kann man CSV-Daten leicht verwalten, indem man entweder rohes JavaScript für einfachere Aufgaben verwendet oder leistungsfähige Bibliotheken wie PapaParse
für komplexere Szenarien nutzt.
Basis-Parsing mit rohem JavaScript
Um einen einfachen CSV-String in ein Array von Objekten zu parsen:
const csv = `name,age,city
John,23,New York
Jane,28,Los Angeles`;
function parseCSV(csv) {
const lines = csv.split("\n");
const result = [];
const headers = lines[0].split(",");
for (let i = 1; i < lines.length; i++) {
const obj = {};
const currentline = lines[i].split(",");
for (let j = 0; j < headers.length; j++) {
obj[headers[j]] = currentline[j];
}
result.push(obj);
}
return result;
}
console.log(parseCSV(csv));
Ausgabe:
[
{ name: 'John', age: '23', city: 'New York' },
{ name: 'Jane', age: '28', city: 'Los Angeles' }
]
Einfache Erzeugung zu CSV mit rohem JavaScript
Um ein Array von Objekten in einen CSV-String zu konvertieren:
const data = [
{ name: 'John', age: 23, city: 'New York' },
{ name: 'Jane', age: 28, city: 'Los Angeles' }
];
function arrayToCSV(arr) {
const csv = arr.map(row =>
Object.values(row).join(',')
).join('\n');
return csv;
}
console.log(arrayToCSV(data));
Ausgabe:
John,23,New York
Jane,28,Los Angeles
Verwendung von PapaParse für komplexe CSV-Aufgaben
Für komplexere Szenarien ist PapaParse
eine robuste Bibliothek, die sich für das Parsen und Stringifizieren von CSV-Dateien eignet, mit Optionen für Streams, Worker und die Handhabung großer Dateien.
Parsen einer CSV-Datei oder eines CSV-Strings mit PapaParse:
// Nachdem PapaParse zu Ihrem Projekt hinzugefügt wurde
const Papa = require('papaparse');
const csv = `name,age,city
John,23,New York
Jane,28,Los Angeles`;
Papa.parse(csv, {
complete: function(results) {
console.log("Geparst:", results.data);
}
});
Erzeugt:
Geparst: [
["name", "age", "city"],
["John", "23", "New York"],
["Jane", "28", "Los Angeles"]
]
Stringifizieren eines Arrays zu einem CSV-String mit PapaParse:
const data = [
{ name: 'John', age: 23, city: 'New York' },
{ name: 'Jane', age: 28, city: 'Los Angeles' }
];
console.log(Papa.unparse(data));
Erzeugt:
name,age,city
John,23,New York
Jane,28,Los Angeles
Diese Beispiele veranschaulichen die grundlegende und fortgeschrittene Handhabung von CSV in JavaScript, was den Datenaustausch in Webanwendungen und darüber hinaus erleichtert.