Skip to content
forked from Claviz/xlstream

Turns XLSX into a readable stream.

License

Notifications You must be signed in to change notification settings

TomNes94/xlstream

 
 

Repository files navigation

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.
skipRows Array Pass array of row numbers to skip.

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.

About

Turns XLSX into a readable stream.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 58.4%
  • JavaScript 41.6%