Developpez.com - Rubrique JavaScript

Le Club des Développeurs et IT Pro

Node CSV

Le parseur JavaScript de fichiers CSV

Le 2012-10-18 11:42:01, par vermine, Expert éminent sénior
Node CSV, le parseur JavaScript de fichiers CSV

Le projet Node CSV fournit un parseur de fichiers CSV. En implémentant des mécanismes de lecture/écriture de flux, ce module peut analyser des fichiers CSV avec moins de mémoire par rapport à la lecture de l'intégralité du fichier en mémoire. Il a été testé et utilisé sur un gros fichier (plus de 2 Go).

En voici quelques caractéristiques :
  • respecte l'API streaming de NodeJS ;
  • s'appuie sur l'asynchronisme et les événements ;
  • prend en charge les délimiteurs, les quotes et les caractères d'échappement ;
  • détecte les sauts de ligne ;
  • supporte de grands ensembles de données ;
  • aucune dépendance externe.


Vous pouvez l'utiliser de la manière suivante :

Code javascript :
1
2
3
fs.createReadStream('./in') 
  .pipe(csv()) 
  .pipe(fs.createWriteStream('./out'));

Ou bien ainsi :

Code javascript :
1
2
3
csv() 
  .from.path('./in') 
  .to.string(function(data) { console.log(data); });

Vous pouvez également ajouter des options de cette manière :

Code javascript :
from.options({ option: 'value' })

L'outil en est maintenant à sa version 0.2.

Le code source sur GitHub.
Le site officiel.
D'après un article sur DailyJS. Cet article parle également de Memoize.
Les meilleurs cours et tutoriels pour apprendre Node.js
  Discussion forum
1 commentaire
  • sabrinouch
    Nouveau membre du Club
    Bonjour,
    Je souhaite transformer des fichier csv en graphiques et les afficher grâce a ajax sur mon site web. Pour cela j'ai vu qu'il y a une bibliothèque javascript Highcharts mais comme j'utilise un serveur Node.js, j'aimerai utiliser le module csv. J'ai vu qu'il était découpé en 4 petits modules:
    csv-generate
    csv-parse
    stream-transform
    csv-stringify

    mais je ne comprend pas très bien comment cela fonctionne. D'après ce que j'ai compris, cvs-generate permet de créer un fichier csv, csv-parse permet de transformer un fichier text en csv, csv-stringify fait le contraire et le stream-transform? Dans mon cas étant donné que j'ai déjà mes fichiers csv, il me semble que je n'en ai pas besoin. Pourriez-vous m'éclairer?
    Merci d'avance.