Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
81 lines (61 sloc) 2.41 KB

Build Status codecov npm

xlstream

Memory-efficiently turns XLSX file into a transform stream with all it's benefits.

  • Stream is pausable.
  • Emits all default events (data, end, etc.)
  • Returns header, raw and formatted row data in just one data event.

Installation

npm install xlstream

Example

source.xlsx contents:

A B
hello 123

Where 123 is a 123.123 number formatted to be rounded to integer.

Script:

const { getXlsxStream } = require('xlstream');

(async () => {
    const stream = await getXlsxStream({
        filePath: './source.xlsx',
        sheet: 0,
    });
    stream.on('data', x => console.log(x));
})();

Result:

{ 
    "raw": { 
        "obj": { "A": "hello", "B": 123.123 }, 
        "arr": [ "hello", 123.123 ] 
    },
    "formatted": { 
        "obj": { "A": "hello", "B": 123 }, 
        "arr": [ "hello", 123 ] 
    },
    "header": []
}

getXlsxStream

Options

option type description
filePath string Path to the XLSX file
sheet string or number If string is passed, finds sheet by it's name. If number, finds sheet by it's index.
withHeader boolean If true, column names will be taken from the first sheet row.
ignoreEmpty boolean If true, empty rows won't be emitted.

getWorksheets

Returns array of sheet names.

Options

option type description
filePath string Path to the XLSX file

Building

You can build js source by using npm run build command.

Testing

Tests can be run by using npm test command.

You can’t perform that action at this time.