csvly

0.3.6 • Public • Published

csvly

npm package

read csv files line by line uses readly to read line by line from the given file and fires an event for each parsed line

usage

ctor

new Csvly(input,options)

input - receives either a path to a file or a stream

options - optional object with options, see below for all options

example with path:

var Csvly = require("csvly");
var reader = new Csvly("test.csv");

example with stream:

var fs = require('fs');
var Csvly = require("csvly");
var strm = fs.createReadStream("test.csv");
var reader = new Csvly(strm);

read

read(start, count)

start - optional number, from which row to start reading (how many lines to skip from the begining)

count - optional number, how many rows max to read from the file (if bigger than actual rows in file its ok)

var Csvly = require("csvly");
var reader = new Csvly("test.csv");
reader.on('line', function(line) {
	console.log(line);
});
reader.on('end', function() {
	console.log('done');
});
reader.read(0,1);

in this example for test.csv:

one,two,three

line will be emitted once as: { '0': 'one', '1': 'two', '2': 'three' }

In addition csvly has the following convenient methods:

readAll() reads all lines from the file

readFirst(count) read the first count rows from the begining of the file

opts

csvly receives an options object as the second argument to its constructor which can contain:

  • encoding - optional, default is utf8
  • eol - optional end of line char, default is OS newline
  • headers - optioanl array of values to use as csv headers. If given they will be the key's to the parsed object properties
  • firstLineIsHeaders - optioanl boolean. Whether to use the first line as headers. If true it will be the key's to the parsed object properties. This option can not be given together with the header option - only one of them may be included in the opts, otherwise an error is thrown.
  • array - optional boolean. If true line event will emit data as an array instead of an object
  • custom - optional object. If included will pass these options to the parser. Can include options such as qoute, trim etc...

example given headers array:

var Csvly = require("csvly");
var reader = new Csvly("test.csv", {
	headers = ["first", "second", "third"]
});
reader.on('line', function(line) {
	console.log(line);
});
reader.on('end', function() {
	console.log('done');
});
reader.readAll();

in this example for test.csv:

one,two,three

line will be emitted once as: { 'first': 'one', 'second': 'two', 'third': 'three' }

example given first line as headers:

var Csvly = require("csvly");
var reader = new Csvly("test.csv", {
	firstLineIsHeaders: true
});
reader.on('line', function(line) {
	console.log(line);
});
reader.on('end', function() {
	console.log('done');
});
reader.readAll();

in this example for test.csv:

one,two,three
a, b, c

line will be emitted once as: { 'one': 'a', 'two': 'b', 'three': 'c' }

Package Sidebar

Install

npm i csvly

Weekly Downloads

12

Version

0.3.6

License

MIT

Unpacked Size

8.44 kB

Total Files

4

Last publish

Collaborators

  • aviv1ron1