Nine Pedestrians Mesmerized
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    csvpublic

         _   _           _        _____  _______      __
        | \ | |         | |      / ____|/ ____\ \    / /
        |  \| | ___   __| | ___ | |    | (___  \ \  / /
        | . ` |/ _ \ / _` |/ _ \| |     \___ \  \ \/ /
        | |\  | (_) | (_| |  __/| |____ ____) |  \  /
        |_| \_|\___/ \__,_|\___| \_____|_____/    \/     New BSD License
    
    

    This project provides CSV generation, parsing, transformation and serialization for Node.js.

    It has been tested and used by a large community over the years and should be considered reliable. It provides every option you would expect from an advanced CSV parser and stringifier.

    NPM NPM

    The csv package is itself split into 4 packages:

    Documentation

    The full documentation for the current version is available here.

    Usage

    Installation command is npm install csv.

    Each package is fully compatible with the stream 2 and 3 specifications. Also, a simple callback-based API is always provided for convenience.

    Callback example

    Execute this script with the command node samples/callback.js.

    var csv = require('csv');
     
    csv.generate({seed: 1, columns: 2, length: 20}, function(err, data){
      csv.parse(data, function(err, data){
        csv.transform(data, function(data){
          return data.map(function(value){return value.toUpperCase()});
        }, function(err, data){
          csv.stringify(data, function(err, data){
            process.stdout.write(data);
          });
        });
      });
    });

    Stream example

    Execute this script with the command node samples/stream.js.

    var csv = require('csv');
     
    var generator = csv.generate({seed: 1, columns: 2, length: 20});
    var parser = csv.parse();
    var transformer = csv.transform(function(data){
      return data.map(function(value){return value.toUpperCase()});
    });
    var stringifier = csv.stringify();
     
    generator.on('readable', function(){
      while(data = generator.read()){
        parser.write(data);
      }
    });
     
    parser.on('readable', function(){
      while(data = parser.read()){
        transformer.write(data);
      }
    });
     
    transformer.on('readable', function(){
      while(data = transformer.read()){
        stringifier.write(data);
      }
    });
     
    stringifier.on('readable', function(){
      while(data = stringifier.read()){
        process.stdout.write(data);
      }
    });

    Pipe example

    Execute this script with the command node samples/pipe.js.

    var csv = require('csv');
     
    csv.generate({seed: 1, columns: 2, length: 20})
      .pipe(csv.parse())
      .pipe(csv.transform(function(record){
         return record.map(function(value){
           return value.toUpperCase()
         });
      }))
      .pipe(csv.stringify())
      .pipe(process.stdout);

    Development

    This parent project doesn't have tests itself but instead delegates the tests to its child projects.

    Read the documentation of the child projects for additional information.

    Related projects

    install

    npm i csv

    Downloadsweekly downloads

    158,155

    version

    3.1.0

    license

    BSD-3-Clause

    repository

    githubgithub

    last publish

    collaborators

    • avatar