JavaScript:
Praca z plikami CSV
Jak to zrobić:
JavaScript nie ma wbudowanej funkcjonalności do parsowania lub stringifikacji CSV tak jak w przypadku JSON. Jednak można łatwo zarządzać danymi CSV, używając surowego JavaScriptu do prostszych zadań lub wykorzystując potężne biblioteki takie jak PapaParse
do bardziej złożonych scenariuszy.
Podstawowe parsowanie przy użyciu surowego JavaScriptu
Aby przeparsować prosty ciąg CSV na tablicę obiektów:
const csv = `name,age,city
John,23,Nowy Jork
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));
Wynik:
[
{ name: 'John', age: '23', city: 'Nowy Jork' },
{ name: 'Jane', age: '28', city: 'Los Angeles' }
]
Podstawowe tworzenie CSV przy użyciu surowego JavaScriptu
Aby przekształcić tablicę obiektów w ciąg CSV:
const data = [
{ name: 'John', age: 23, city: 'Nowy Jork' },
{ 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));
Wynik:
John,23,Nowy Jork
Jane,28,Los Angeles
Użycie PapaParse do złożonych zadań z CSV
Dla bardziej skomplikowanych scenariuszy PapaParse
jest rozbudowaną biblioteką odpowiednią do parsowania i stringifikacji plików CSV z opcjami dla strumieni, workerów i obsługi dużych plików.
Parsowanie pliku CSV lub ciągu przy użyciu PapaParse:
// Po dodaniu PapaParse do projektu
const Papa = require('papaparse');
const csv = `name,age,city
John,23,Nowy Jork
Jane,28,Los Angeles`;
Papa.parse(csv, {
complete: function(results) {
console.log("Sparsowano:", results.data);
}
});
Generuje:
Sparsowano: [
["name", "age", "city"],
["John", "23", "Nowy Jork"],
["Jane", "28", "Los Angeles"]
]
Stringifikacja tablicy do ciągu CSV przy użyciu PapaParse:
const data = [
{ name: 'John', age: 23, city: 'Nowy Jork' },
{ name: 'Jane', age: 28, city: 'Los Angeles' }
];
console.log(Papa.unparse(data));
Generuje:
name,age,city
John,23,Nowy Jork
Jane,28,Los Angeles
Te przykłady ilustrują podstawowe i zaawansowane obsługi plików CSV w JavaScript, umożliwiając łatwą wymianę danych w aplikacjach internetowych i nie tylko.