Travailler avec CSV en JavaScript (Node.js) : bibliothèques et outils

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Travailler avec CSV en JavaScript (Node.js) : bibliothèques et exemples pratiques



CSV (Comma-Separated Values) est l'un des formats les plus courants pour l'échange de données tabulaires. Dans l'écosystème Node.js, il existe plusieurs bibliothèques matures qui permettent de lire, traiter et créer efficacement des fichiers CSV. Dans cet article, nous examinerons les principaux outils, leurs fonctionnalités et fournirons des exemples de code pratiques.



Bibliothèques populaires pour travailler avec CSV



1. csv-parser — analyseur rapide en flux

Cette bibliothèque est la norme pour la lecture de CSV en Node.js. Elle fonctionne en mode flux (stream), ce qui permet de traiter des fichiers de toute taille sans les charger entièrement en mémoire.



Installation :

npm install csv-parser


Exemple de lecture d'un fichier CSV :

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 lu avec succès'); console.log(results.slice(0, 3)); // Les 3 premiers enregistrements });


Caractéristiques clés :

  • Prise en charge des séparateurs personnalisés (par défaut la virgule)
  • Détection automatique des en-têtes à partir de la première ligne
  • Possibilité d'ignorer les lignes vides
  • Faible consommation mémoire grâce au traitement en flux


2. csv-stringify — création de CSV à partir d'objets

Cet outil fait partie de la famille csv et est conçu pour générer des chaînes ou des flux CSV à partir d'objets JavaScript.



Installation :

npm install csv-stringify


Exemple d'écriture de données en CSV :

const { stringify } = require('csv-stringify');const fs = require('fs');

const data = [ { name: 'Anna', age: 28, city: 'Moscou' }, { name: 'Ivan', age: 35, city: 'Saint-Pétersbourg' }, { name: 'Olga', age: 22, city: 'Kazan' }];

const writableStream = fs.createWriteStream('output.csv');const stringifier = stringify({ header: true });

stringifier.pipe(writableStream);data.forEach(row => stringifier.write(row));stringifier.end();

console.log('Fichier output.csv créé');


Fonctionnalités :

  • Échappement automatique des caractères spéciaux (guillemets, virgules)
  • Configuration du séparateur de colonnes
  • Prise en charge des en-têtes personnalisés
  • Fonctionnement en modes synchrone et asynchrone


3. csv-writer — API simple et intuitive

Cette bibliothèque offre une interface plus simple pour l'écriture de CSV, surtout si vous travaillez avec de petits volumes de données.



Installation :

npm install csv-writer


Exemple d'écriture :

const createCsvWriter = require('csv-writer').createObjectCsvWriter;

const csvWriter = createCsvWriter({ path: 'users.csv', header: [ { id: 'id', title: 'ID' }, { id: 'name', title: 'Nom' }, { id: 'email', title: 'Email' } ]});

const records = [ { id: 1, name: 'Alexei', email: 'alex@example.com' }, { id: 2, name: 'Maria', email: 'maria@example.com' }];

csvWriter.writeRecords(records) .then(() => console.log('Fichier CSV créé'));


Scénarios d'utilisation avancés



Traitement de gros fichiers avec transformation de données

Combinons la lecture et l'écriture dans un même flux pour traiter les données à la volée :



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

Recommendations