node wrapper for parsing spreadsheets. Supports xls, xlsx.

You can install this module using npm:

npm install excel-parser

Requires python to be installed. Python modules are also required: argparse and xlrd
To install them:

pip install argparse
pip install xlrd

For system-specific installation view the Wiki


### worksheets(options, callback(err, worksheets))

Get all the worksheets list in given spreadsheet where options are the object of arguments. The result is returned as a object.


  • inFile – Filepath of the source speadsheet


var excelParser = require('excel-parser');
  inFile: 'my_file.in'
}, function(err, worksheets){
  if(err) console.error(err);

Sample output

  {'name': 'Sheet1', id: 1},
  {'name': 'Sheet2', id: 2}

### parse(options, callback(err, records))

Parse spreadsheet with given optinos as an arguments. The result is returned as an array.


  • inFile – Filepath of the source speadsheet
  • worksheet – Worksheet name or Id to parse. If nothing specified then default
    is 0 and parsed all the worksheets.
  • skipEmpty – boolean true or false. Pass true if want to skip empty cells from spreadsheet.
  • searchFor – Object with term and type values. If you want to get limited
    matching rows from spreadsheet then add the matching string array and one of the following search type.
    ** ‘strict’ is for the case sensetive and exact string matched.
    ** ‘loose’ is for the case insensetive and match relatively.


var excelParser = require('excel-parser');

  inFile: 'my_file.in',
  worksheet: 1,
  skipEmpty: true,
  searchFor: {
    term: ['my serach term'],
    type: 'loose'
},function(err, records){
  if(err) console.error(err);

Sample output

  ['ID', 'Name', 'City'],
  ['1', 'joe', 'Sandy Springs'],
  ['1', 'cole', 'City of Industry']

Running Tests

There are unit tests in test/ directory. To run test suite first run the following command to install dependencies.

npm install

then run the tests:

grunt nodeunit

NOTE: Install npm install -g grunt-cli for running tests.


Copyright (c) 2013 Shekhar R. Thawali

Licensed under the MIT license.


View Github