JavaScript:
Travailler avec CSV

Comment faire :

JavaScript ne dispose pas de fonction intégrée pour l’analyse ou la génération de CSV comme c’est le cas avec JSON. Cependant, vous pouvez facilement gérer les données CSV en utilisant soit le JavaScript brut pour des tâches plus simples, soit en exploitant des bibliothèques puissantes comme PapaParse pour des scénarios plus complexes.

Analyse Basique avec JavaScript Brut

Pour analyser une simple chaîne CSV en un tableau d’objets :

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));

Sortie :

[
  { name: 'John', age: '23', city: 'New York' },
  { name: 'Jane', age: '28', city: 'Los Angeles' }
]

Génération Basique vers CSV avec JavaScript Brut

Pour convertir un tableau d’objets en une chaîne CSV :

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));

Sortie :

John,23,New York
Jane,28,Los Angeles

Utilisation de PapaParse pour des Tâches CSV Complexes

Pour des scénarios plus complexes, PapaParse est une bibliothèque robuste adaptée pour l’analyse et la génération de fichiers CSV avec des options pour les flux, les workers et la gestion de gros fichiers.

Analyser un fichier CSV ou une chaîne avec PapaParse :

// Après avoir ajouté PapaParse à votre projet
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("Analysé :", results.data);
  }
});

Produit :

Analysé : [
  ["name", "age", "city"],
  ["John", "23", "New York"],
  ["Jane", "28", "Los Angeles"]
]

Transformer un tableau en chaîne CSV avec PapaParse :

const data = [
  { name: 'John', age: 23, city: 'New York' },
  { name: 'Jane', age: 28, city: 'Los Angeles' }
];

console.log(Papa.unparse(data));

Génère :

name,age,city
John,23,New York
Jane,28,Los Angeles

Ces exemples illustrent la gestion de CSV basique et avancée en JavaScript, permettant un échange de données facile dans les applications web et au-delà.