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.
npm install xlstream
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": []
}
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. |
Returns array of sheet names.
option | type | description |
---|---|---|
filePath | string |
Path to the XLSX file |
You can build js
source by using npm run build
command.
Tests can be run by using npm test
command.