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
dataevent.
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.