A stream that converts excel spreadsheets into JSON object arrays.
// stream rows from the first sheet on the file var excel = require('excel-stream') var fs = require('fs')fs.createReadStream('accounts.xlsx') .pipe(excel()) // same as excel({sheetIndex: 0}) .on('data', console.log)
// stream rows from the sheet named 'Your sheet name' var excel = require('excel-stream') var fs = require('fs')fs.createReadStream('accounts.xlsx') .pipe(excel({ sheet: 'Your sheet name' })) .on('data', console.log)
The
optionsobject may have the same properties as csv-stream and these two additional properties:
sheet: the name of the sheet you want to stream. Case sensitive.
sheetIndex: the sheet number you want to stream (0-based).
npm install -g excel-stream excel-stream < accounts.xlsx > account.json
newline delimited json:
excel-stream --newlines
each row becomes a javascript object, so input like
foo, bar, baz 1, 2, 3 4, 5, 6
will become
[{ foo: 1, bar: 2, baz: 3 }, { foo: 4, bar: 5, baz: 6 }]
So, excel isn't really a streamable format. But it's easy to work with streams because everything is a stream. This writes to a tmp file, then pipes it through the unfortunately named j then into csv-stream
MIT