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.