0.2.0 • Published 2 years ago

xlsx-json-stream v0.2.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
2 years ago

xlsx-json-stream

Minimize memory usage by processing each row as soon as possible, instead of trying to convert everything into an array of JSON objects.

This does not have write functionality.

Quick start

npm install xlsx-json-stream

const ExcelStreamer = require('xlsx-json-stream');


main = async () => {
    await ExcelStreamer.readToJson('Spreadsheet.xlsx', (err, data) => {
        console.log(data.row, data.rowCtr, data.dataLength, data.headerLength, data.sheetName);
        // ToDo: add your transform and load steps for each Excel row here
    });
    console.log("** Done **");
}

main()

You can also override some parameters:

  • MAX_EMPTY_SEQUENTIAL_ROWS = 2;
  • DEFAULT_VALUE = null;
  • HEADER_ROW = 0;
  • DATA_START_ROW = 1;
  • INCLUDE_EMPTY = false;
  • SHEETS = [];
  • ASYNC_BATCH_SIZE = 1;
  • READ_OPTIONS = { dateFormat: 'm/d/yy;@' }; // Default date format is mm/dd/yyyy
  • DATE_FIELD_LIST = 'Column Header 1', 'Arrival Date'; // force numbers to date
  • IS_LOCAL_DATES = false; // remove the 'Z' at the end of the ISO string to 'treat it like a local' date
const ExcelStreamer = require('xlsx-json-stream');

let options = {
  MAX_EMPTY_SEQUENTIAL_ROWS : 2,
  DEFAULT_VALUE:'',
  HEADER_ROW:0,
  DATA_START_ROW:1,
  INCLUDE_EMPTY:false,
  SHEETS:['USA','MEX'],
  ASYNC_BATCH_SIZE:1,
  READ_OPTIONS : {dateFormat: 'm/d/yy;@' }; // default format is mm/dd/yyyy
}

main = async () => {
    await ExcelStreamer.readToJson(filename, options, (err, data) => {
        console.log(data.row, data.rowCtr, data.sheetName, data.dataLength, data.headerLength);
        // ToDo: add your transform and load steps for each Excel row here
    });
    console.log("** Done **");
}

main()

BREAKING CHANGE

We are now returning the standard (error, data), instead of returning multiple parameters: obj, rowCtr, sheetName, headerLength, dataLength. And access them this way:

  • data.row
  • data.rowCtr
  • data.sheetName
  • data.headerLength
  • data.dataLength

Exceptions

UnhandledPromiseRejectionWarning: Error: Sheet "MEX" not found in the *.xlsx file. Available sheets: "USA" (#1), "CAN" (#2).

0.2.0

2 years ago

0.1.8

2 years ago

0.1.9

2 years ago

0.1.7

2 years ago

0.1.4

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.2

3 years ago

0.1.3

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago