read-excel-file 5.8.7 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +223 -271
  3. package/bundle/read-excel-file.min.js +1 -1
  4. package/bundle/read-excel-file.min.js.map +1 -1
  5. package/commonjs/read/dropEmptyRows.js +3 -3
  6. package/commonjs/read/dropEmptyRows.js.map +1 -1
  7. package/commonjs/read/dropEmptyRows.test.js.map +1 -1
  8. package/commonjs/read/getData.js +18 -8
  9. package/commonjs/read/getData.js.map +1 -1
  10. package/commonjs/read/readXlsx.js +2 -2
  11. package/commonjs/read/readXlsx.js.map +1 -1
  12. package/commonjs/read/readXlsxFileContents.js +8 -9
  13. package/commonjs/read/readXlsxFileContents.js.map +1 -1
  14. package/commonjs/read/readXlsxFileNode.test.js.map +1 -1
  15. package/commonjs/read/schema/mapToObjects.js +100 -38
  16. package/commonjs/read/schema/mapToObjects.js.map +1 -1
  17. package/commonjs/read/schema/mapToObjects.test.js.map +1 -1
  18. package/commonjs/read/unpackXlsxFileNode.js +14 -3
  19. package/commonjs/read/unpackXlsxFileNode.js.map +1 -1
  20. package/index.d.ts +0 -2
  21. package/modules/read/dropEmptyRows.js +3 -3
  22. package/modules/read/dropEmptyRows.js.map +1 -1
  23. package/modules/read/dropEmptyRows.test.js.map +1 -1
  24. package/modules/read/getData.js +18 -8
  25. package/modules/read/getData.js.map +1 -1
  26. package/modules/read/readXlsx.js +2 -2
  27. package/modules/read/readXlsx.js.map +1 -1
  28. package/modules/read/readXlsxFileContents.js +8 -9
  29. package/modules/read/readXlsxFileContents.js.map +1 -1
  30. package/modules/read/readXlsxFileNode.test.js.map +1 -1
  31. package/modules/read/schema/mapToObjects.js +100 -38
  32. package/modules/read/schema/mapToObjects.js.map +1 -1
  33. package/modules/read/schema/mapToObjects.test.js.map +1 -1
  34. package/modules/read/unpackXlsxFileNode.js +14 -3
  35. package/modules/read/unpackXlsxFileNode.js.map +1 -1
  36. package/node/index.d.ts +0 -2
  37. package/package.json +5 -15
  38. package/types.d.ts +25 -39
  39. package/web-worker/index.d.ts +0 -2
  40. package/bundle/index.html +0 -261
  41. package/bundle/lib/prism.css +0 -125
  42. package/bundle/lib/prism.js +0 -7
  43. package/bundle/lib/promise-polyfill.min.js +0 -1
  44. package/commonjs/read/schema/convertMapToSchema.js +0 -27
  45. package/commonjs/read/schema/convertMapToSchema.js.map +0 -1
  46. package/commonjs/read/schema/convertMapToSchema.test.js.map +0 -1
  47. package/commonjs/read/schema/mapToObjects.legacy.js +0 -60
  48. package/commonjs/read/schema/mapToObjects.legacy.js.map +0 -1
  49. package/commonjs/read/schema/mapToObjects.legacy.test.js.map +0 -1
  50. package/commonjs/read/schema/mapToObjects.spreadsheet.js +0 -25
  51. package/commonjs/read/schema/mapToObjects.spreadsheet.js.map +0 -1
  52. package/commonjs/read/schema/mapToObjects.spreadsheet.test.js.map +0 -1
  53. package/map/index.cjs +0 -2
  54. package/map/index.cjs.js +0 -7
  55. package/map/index.d.ts +0 -15
  56. package/map/index.js +0 -1
  57. package/map/package.json +0 -17
  58. package/modules/read/schema/convertMapToSchema.js +0 -21
  59. package/modules/read/schema/convertMapToSchema.js.map +0 -1
  60. package/modules/read/schema/convertMapToSchema.test.js.map +0 -1
  61. package/modules/read/schema/mapToObjects.legacy.js +0 -53
  62. package/modules/read/schema/mapToObjects.legacy.js.map +0 -1
  63. package/modules/read/schema/mapToObjects.legacy.test.js.map +0 -1
  64. package/modules/read/schema/mapToObjects.spreadsheet.js +0 -19
  65. package/modules/read/schema/mapToObjects.spreadsheet.js.map +0 -1
  66. package/modules/read/schema/mapToObjects.spreadsheet.test.js.map +0 -1
  67. package/schema/index.cjs +0 -2
  68. package/schema/index.cjs.js +0 -7
  69. package/schema/index.d.ts +0 -11
  70. package/schema/index.js +0 -1
  71. package/schema/package.json +0 -17
  72. package/website/index.html +0 -261
  73. package/website/lib/prism.css +0 -125
  74. package/website/lib/prism.js +0 -7
  75. package/website/lib/promise-polyfill.min.js +0 -1
@@ -9,7 +9,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
9
9
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
10
10
  function dropEmptyRows(data) {
11
11
  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
12
- rowIndexMap = _ref.rowIndexMap,
12
+ rowIndexSourceMap = _ref.rowIndexSourceMap,
13
13
  _ref$accessor = _ref.accessor,
14
14
  accessor = _ref$accessor === void 0 ? function (_) {
15
15
  return _;
@@ -30,8 +30,8 @@ function dropEmptyRows(data) {
30
30
  // Remove the empty row.
31
31
  if (empty) {
32
32
  data.splice(i, 1);
33
- if (rowIndexMap) {
34
- rowIndexMap.splice(i, 1);
33
+ if (rowIndexSourceMap) {
34
+ rowIndexSourceMap.splice(i, 1);
35
35
  }
36
36
  } else if (onlyTrimAtTheEnd) {
37
37
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"dropEmptyRows.js","names":["dropEmptyRows","data","_ref","arguments","length","undefined","rowIndexMap","_ref$accessor","accessor","_","onlyTrimAtTheEnd","i","empty","_iterator","_createForOfIteratorHelperLoose","_step","done","cell","value","splice"],"sources":["../../source/read/dropEmptyRows.js"],"sourcesContent":["export default function dropEmptyRows(data, {\r\n rowIndexMap,\r\n accessor = _ => _,\r\n onlyTrimAtTheEnd\r\n} = {}) {\r\n // Drop empty rows.\r\n let i = data.length - 1\r\n while (i >= 0) {\r\n // Check if the row is empty.\r\n let empty = true\r\n for (const cell of data[i]) {\r\n if (accessor(cell) !== null) {\r\n empty = false\r\n break\r\n }\r\n }\r\n // Remove the empty row.\r\n if (empty) {\r\n data.splice(i, 1)\r\n if (rowIndexMap) {\r\n rowIndexMap.splice(i, 1)\r\n }\r\n } else if (onlyTrimAtTheEnd) {\r\n break\r\n }\r\n i--\r\n }\r\n return data\r\n}"],"mappings":";;;;;;;;;AAAe,SAASA,aAAaA,CAACC,IAAI,EAIlC;EAAA,IAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAJ,CAAC,CAAC;IAHJG,WAAW,GAAAJ,IAAA,CAAXI,WAAW;IAAAC,aAAA,GAAAL,IAAA,CACXM,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAG,UAAAE,CAAC;MAAA,OAAIA,CAAC;IAAA,IAAAF,aAAA;IACjBG,gBAAgB,GAAAR,IAAA,CAAhBQ,gBAAgB;EAEhB;EACA,IAAIC,CAAC,GAAGV,IAAI,CAACG,MAAM,GAAG,CAAC;EACvB,OAAOO,CAAC,IAAI,CAAC,EAAE;IACb;IACA,IAAIC,KAAK,GAAG,IAAI;IAChB,SAAAC,SAAA,GAAAC,+BAAA,CAAmBb,IAAI,CAACU,CAAC,CAAC,GAAAI,KAAA,IAAAA,KAAA,GAAAF,SAAA,IAAAG,IAAA,GAAE;MAAA,IAAjBC,IAAI,GAAAF,KAAA,CAAAG,KAAA;MACb,IAAIV,QAAQ,CAACS,IAAI,CAAC,KAAK,IAAI,EAAE;QAC3BL,KAAK,GAAG,KAAK;QACb;MACF;IACF;IACA;IACA,IAAIA,KAAK,EAAE;MACTX,IAAI,CAACkB,MAAM,CAACR,CAAC,EAAE,CAAC,CAAC;MACjB,IAAIL,WAAW,EAAE;QACfA,WAAW,CAACa,MAAM,CAACR,CAAC,EAAE,CAAC,CAAC;MAC1B;IACF,CAAC,MAAM,IAAID,gBAAgB,EAAE;MAC3B;IACF;IACAC,CAAC,EAAE;EACL;EACA,OAAOV,IAAI;AACb"}
1
+ {"version":3,"file":"dropEmptyRows.js","names":["dropEmptyRows","data","_ref","arguments","length","undefined","rowIndexSourceMap","_ref$accessor","accessor","_","onlyTrimAtTheEnd","i","empty","_iterator","_createForOfIteratorHelperLoose","_step","done","cell","value","splice"],"sources":["../../source/read/dropEmptyRows.js"],"sourcesContent":["export default function dropEmptyRows(data, {\r\n rowIndexSourceMap,\r\n accessor = _ => _,\r\n onlyTrimAtTheEnd\r\n} = {}) {\r\n // Drop empty rows.\r\n let i = data.length - 1\r\n while (i >= 0) {\r\n // Check if the row is empty.\r\n let empty = true\r\n for (const cell of data[i]) {\r\n if (accessor(cell) !== null) {\r\n empty = false\r\n break\r\n }\r\n }\r\n // Remove the empty row.\r\n if (empty) {\r\n data.splice(i, 1)\r\n if (rowIndexSourceMap) {\r\n rowIndexSourceMap.splice(i, 1)\r\n }\r\n } else if (onlyTrimAtTheEnd) {\r\n break\r\n }\r\n i--\r\n }\r\n return data\r\n}"],"mappings":";;;;;;;;;AAAe,SAASA,aAAaA,CAACC,IAAI,EAIlC;EAAA,IAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAJ,CAAC,CAAC;IAHJG,iBAAiB,GAAAJ,IAAA,CAAjBI,iBAAiB;IAAAC,aAAA,GAAAL,IAAA,CACjBM,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAG,UAAAE,CAAC;MAAA,OAAIA,CAAC;IAAA,IAAAF,aAAA;IACjBG,gBAAgB,GAAAR,IAAA,CAAhBQ,gBAAgB;EAEhB;EACA,IAAIC,CAAC,GAAGV,IAAI,CAACG,MAAM,GAAG,CAAC;EACvB,OAAOO,CAAC,IAAI,CAAC,EAAE;IACb;IACA,IAAIC,KAAK,GAAG,IAAI;IAChB,SAAAC,SAAA,GAAAC,+BAAA,CAAmBb,IAAI,CAACU,CAAC,CAAC,GAAAI,KAAA,IAAAA,KAAA,GAAAF,SAAA,IAAAG,IAAA,GAAE;MAAA,IAAjBC,IAAI,GAAAF,KAAA,CAAAG,KAAA;MACb,IAAIV,QAAQ,CAACS,IAAI,CAAC,KAAK,IAAI,EAAE;QAC3BL,KAAK,GAAG,KAAK;QACb;MACF;IACF;IACA;IACA,IAAIA,KAAK,EAAE;MACTX,IAAI,CAACkB,MAAM,CAACR,CAAC,EAAE,CAAC,CAAC;MACjB,IAAIL,iBAAiB,EAAE;QACrBA,iBAAiB,CAACa,MAAM,CAACR,CAAC,EAAE,CAAC,CAAC;MAChC;IACF,CAAC,MAAM,IAAID,gBAAgB,EAAE;MAC3B;IACF;IACAC,CAAC,EAAE;EACL;EACA,OAAOV,IAAI;AACb"}
@@ -1 +1 @@
1
- {"version":3,"file":"dropEmptyRows.test.js","names":["_dropEmptyRows","_interopRequireDefault","require","obj","__esModule","describe","it","dropEmptyRows","onlyTrimAtTheEnd","should","deep","equal","rowIndexMap"],"sources":["../../source/read/dropEmptyRows.test.js"],"sourcesContent":["import dropEmptyRows from './dropEmptyRows.js'\r\n\r\ndescribe('dropEmptyRows', () => {\r\n\tit('should drop empty rows (only at the end)', () => {\r\n\t\tdropEmptyRows([\r\n\t\t\t[null, null, null],\r\n\t\t\t['A', 'B', 'C'],\r\n\t\t\t[null, 'D', null],\r\n\t\t\t[null, null, null],\r\n\t\t\t['E', 'F', 'G'],\r\n\t\t\t[null, null, null]\r\n\t\t], {\r\n\t\t\tonlyTrimAtTheEnd: true\r\n\t\t})\r\n\t\t.should.deep.equal([\r\n\t\t\t[null, null, null],\r\n\t\t\t['A', 'B', 'C'],\r\n\t\t\t[null, 'D', null],\r\n\t\t\t[null, null, null],\r\n\t\t\t['E', 'F', 'G']\r\n\t\t])\r\n\t})\r\n\r\n\tit('should drop empty rows', () => {\r\n\t\tdropEmptyRows([\r\n\t\t\t[null, null, null],\r\n\t\t\t['A', 'B', 'C'],\r\n\t\t\t[null, 'D', null],\r\n\t\t\t[null, null, null],\r\n\t\t\t['E', 'F', 'G'],\r\n\t\t\t[null, null, null]\r\n\t\t])\r\n\t\t.should.deep.equal([\r\n\t\t\t['A', 'B', 'C'],\r\n\t\t\t[null, 'D', null],\r\n\t\t\t['E', 'F', 'G']\r\n\t\t])\r\n\t})\r\n\r\n\tit('should generate row map when dropping empty rows', () => {\r\n\t\tconst rowIndexMap = [0, 1, 2, 3, 4]\r\n\r\n\t\tdropEmptyRows([\r\n\t\t\t[null, null, null],\r\n\t\t\t['A', 'B', 'C'],\r\n\t\t\t[null, 'D', null],\r\n\t\t\t[null, null, null],\r\n\t\t\t['E', 'F', 'G']\r\n\t\t],\r\n\t\t{ rowIndexMap })\r\n\t\t.should.deep.equal([\r\n\t\t\t['A', 'B', 'C'],\r\n\t\t\t[null, 'D', null],\r\n\t\t\t['E', 'F', 'G']\r\n\t\t])\r\n\r\n\t\trowIndexMap.should.deep.equal([1, 2, 4])\r\n\t})\r\n})"],"mappings":";;AAAA,IAAAA,cAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA8C,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAE9CE,QAAQ,CAAC,eAAe,EAAE,YAAM;EAC/BC,EAAE,CAAC,0CAA0C,EAAE,YAAM;IACpD,IAAAC,yBAAa,EAAC,CACb,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EACjB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAClB,EAAE;MACFC,gBAAgB,EAAE;IACnB,CAAC,CAAC,CACDC,MAAM,CAACC,IAAI,CAACC,KAAK,CAAC,CAClB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EACjB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CACf,CAAC;EACH,CAAC,CAAC;EAEFL,EAAE,CAAC,wBAAwB,EAAE,YAAM;IAClC,IAAAC,yBAAa,EAAC,CACb,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EACjB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAClB,CAAC,CACDE,MAAM,CAACC,IAAI,CAACC,KAAK,CAAC,CAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CACf,CAAC;EACH,CAAC,CAAC;EAEFL,EAAE,CAAC,kDAAkD,EAAE,YAAM;IAC5D,IAAMM,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAEnC,IAAAL,yBAAa,EAAC,CACb,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EACjB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CACf,EACD;MAAEK,WAAW,EAAXA;IAAY,CAAC,CAAC,CACfH,MAAM,CAACC,IAAI,CAACC,KAAK,CAAC,CAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CACf,CAAC;IAEFC,WAAW,CAACH,MAAM,CAACC,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;EACzC,CAAC,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"dropEmptyRows.test.js","names":["_dropEmptyRows","_interopRequireDefault","require","obj","__esModule","describe","it","dropEmptyRows","onlyTrimAtTheEnd","should","deep","equal","rowIndexSourceMap"],"sources":["../../source/read/dropEmptyRows.test.js"],"sourcesContent":["import dropEmptyRows from './dropEmptyRows.js'\r\n\r\ndescribe('dropEmptyRows', () => {\r\n\tit('should drop empty rows (only at the end)', () => {\r\n\t\tdropEmptyRows([\r\n\t\t\t[null, null, null],\r\n\t\t\t['A', 'B', 'C'],\r\n\t\t\t[null, 'D', null],\r\n\t\t\t[null, null, null],\r\n\t\t\t['E', 'F', 'G'],\r\n\t\t\t[null, null, null]\r\n\t\t], {\r\n\t\t\tonlyTrimAtTheEnd: true\r\n\t\t})\r\n\t\t.should.deep.equal([\r\n\t\t\t[null, null, null],\r\n\t\t\t['A', 'B', 'C'],\r\n\t\t\t[null, 'D', null],\r\n\t\t\t[null, null, null],\r\n\t\t\t['E', 'F', 'G']\r\n\t\t])\r\n\t})\r\n\r\n\tit('should drop empty rows', () => {\r\n\t\tdropEmptyRows([\r\n\t\t\t[null, null, null],\r\n\t\t\t['A', 'B', 'C'],\r\n\t\t\t[null, 'D', null],\r\n\t\t\t[null, null, null],\r\n\t\t\t['E', 'F', 'G'],\r\n\t\t\t[null, null, null]\r\n\t\t])\r\n\t\t.should.deep.equal([\r\n\t\t\t['A', 'B', 'C'],\r\n\t\t\t[null, 'D', null],\r\n\t\t\t['E', 'F', 'G']\r\n\t\t])\r\n\t})\r\n\r\n\tit('should generate row map when dropping empty rows', () => {\r\n\t\tconst rowIndexSourceMap = [0, 1, 2, 3, 4]\r\n\r\n\t\tdropEmptyRows([\r\n\t\t\t[null, null, null],\r\n\t\t\t['A', 'B', 'C'],\r\n\t\t\t[null, 'D', null],\r\n\t\t\t[null, null, null],\r\n\t\t\t['E', 'F', 'G']\r\n\t\t],\r\n\t\t{ rowIndexSourceMap })\r\n\t\t.should.deep.equal([\r\n\t\t\t['A', 'B', 'C'],\r\n\t\t\t[null, 'D', null],\r\n\t\t\t['E', 'F', 'G']\r\n\t\t])\r\n\r\n\t\trowIndexSourceMap.should.deep.equal([1, 2, 4])\r\n\t})\r\n})"],"mappings":";;AAAA,IAAAA,cAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA8C,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAE9CE,QAAQ,CAAC,eAAe,EAAE,YAAM;EAC/BC,EAAE,CAAC,0CAA0C,EAAE,YAAM;IACpD,IAAAC,yBAAa,EAAC,CACb,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EACjB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAClB,EAAE;MACFC,gBAAgB,EAAE;IACnB,CAAC,CAAC,CACDC,MAAM,CAACC,IAAI,CAACC,KAAK,CAAC,CAClB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EACjB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CACf,CAAC;EACH,CAAC,CAAC;EAEFL,EAAE,CAAC,wBAAwB,EAAE,YAAM;IAClC,IAAAC,yBAAa,EAAC,CACb,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EACjB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAClB,CAAC,CACDE,MAAM,CAACC,IAAI,CAACC,KAAK,CAAC,CAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CACf,CAAC;EACH,CAAC,CAAC;EAEFL,EAAE,CAAC,kDAAkD,EAAE,YAAM;IAC5D,IAAMM,iBAAiB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAEzC,IAAAL,yBAAa,EAAC,CACb,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EACjB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CACf,EACD;MAAEK,iBAAiB,EAAjBA;IAAkB,CAAC,CAAC,CACrBH,MAAM,CAACC,IAAI,CAACC,KAAK,CAAC,CAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CACf,CAAC;IAEFC,iBAAiB,CAACH,MAAM,CAACC,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;EAC/C,CAAC,CAAC;AACH,CAAC,CAAC"}
@@ -26,7 +26,8 @@ function getData(sheet, options) {
26
26
  leftTop = _dimensions[0],
27
27
  rightBottom = _dimensions[1];
28
28
 
29
- // Don't discard empty rows or columns at the start.
29
+ // Don't discard empty rows or columns at the start of the spreadsheet,
30
+ // even when the `*.xlsx` file itself tells that the content starts at an offset.
30
31
  // https://github.com/catamphetamine/read-excel-file/issues/102
31
32
  // const colsCount = (rightBottom.column - leftTop.column) + 1
32
33
  // const rowsCount = (rightBottom.row - leftTop.row) + 1
@@ -53,7 +54,8 @@ function getData(sheet, options) {
53
54
  // from some other library that used `XPath`)
54
55
  for (var _iterator = _createForOfIteratorHelperLoose(cells), _step; !(_step = _iterator()).done;) {
55
56
  var cell = _step.value;
56
- // Don't discard empty rows or columns at the start.
57
+ // Don't discard empty rows or columns at the start of the spreadsheet,
58
+ // even when the `*.xlsx` file itself tells that the content starts at an offset.
57
59
  // https://github.com/catamphetamine/read-excel-file/issues/102
58
60
  // const rowIndex = cell.row - leftTop.row
59
61
  // const columnIndex = cell.column - leftTop.column
@@ -66,21 +68,29 @@ function getData(sheet, options) {
66
68
  }
67
69
 
68
70
  // Fill in the row map.
69
- var rowIndexMap = options.rowMap;
70
- if (rowIndexMap) {
71
+ var rowIndexSourceMap = options.rowIndexSourceMap;
72
+ if (rowIndexSourceMap) {
71
73
  var _i = 0;
72
74
  while (_i < data.length) {
73
- rowIndexMap[_i] = _i;
75
+ rowIndexSourceMap[_i] = _i;
74
76
  _i++;
75
77
  }
76
78
  }
77
79
 
78
- // Drop empty columns or rows.
80
+ // Drop (discard) empty columns or rows.
81
+ //
82
+ // Don't discard empty rows or columns at the start or in the middle.
83
+ // Only discard empty rows at the bottom or empty columns on the right side.
84
+ // The rationale is that the data should be output in the same shape or form
85
+ // as it can be seen in the actual spreadsheet.
86
+ // If the user decides to discard empty rows or columns, they could do it manually
87
+ // by passing `transformData()` function as an option.
88
+ //
79
89
  data = (0, _dropEmptyRows["default"])((0, _dropEmptyColumns["default"])(data, {
80
90
  onlyTrimAtTheEnd: true
81
91
  }), {
82
92
  onlyTrimAtTheEnd: true,
83
- rowIndexMap: rowIndexMap
93
+ rowIndexSourceMap: rowIndexSourceMap
84
94
  });
85
95
 
86
96
  // Optionally transform data before applying `schema`.
@@ -88,7 +98,7 @@ function getData(sheet, options) {
88
98
  data = options.transformData(data);
89
99
  // data = options.transformData(data, {
90
100
  // dropEmptyRowsAndColumns(data) {
91
- // return dropEmptyRows(dropEmptyColumns(data), { rowIndexMap })
101
+ // return dropEmptyRows(dropEmptyColumns(data), { rowIndexSourceMap })
92
102
  // }
93
103
  // })
94
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getData.js","names":["_dropEmptyRows","_interopRequireDefault","require","_dropEmptyColumns","obj","__esModule","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","minLen","_arrayLikeToArray","n","Object","prototype","toString","slice","constructor","name","from","test","len","arr2","r","l","t","e","u","a","f","push","getData","sheet","options","dimensions","cells","_dimensions","leftTop","rightBottom","colsCount","column","rowsCount","row","data","j","_iterator","_step","cell","rowIndex","columnIndex","rowIndexMap","rowMap","dropEmptyRows","dropEmptyColumns","onlyTrimAtTheEnd","transformData"],"sources":["../../source/read/getData.js"],"sourcesContent":["import dropEmptyRows from './dropEmptyRows.js'\r\nimport dropEmptyColumns from './dropEmptyColumns.js'\r\n\r\nexport default function getData(sheet, options) {\r\n const { dimensions, cells } = sheet\r\n\r\n // If the sheet is empty.\r\n if (cells.length === 0) {\r\n return []\r\n }\r\n\r\n const [leftTop, rightBottom] = dimensions\r\n\r\n // Don't discard empty rows or columns at the start.\r\n // https://github.com/catamphetamine/read-excel-file/issues/102\r\n // const colsCount = (rightBottom.column - leftTop.column) + 1\r\n // const rowsCount = (rightBottom.row - leftTop.row) + 1\r\n\r\n const colsCount = rightBottom.column\r\n const rowsCount = rightBottom.row\r\n\r\n // Initialize spreadsheet data structure.\r\n let data = new Array(rowsCount)\r\n let i = 0\r\n while (i < rowsCount) {\r\n data[i] = new Array(colsCount)\r\n let j = 0\r\n while (j < colsCount) {\r\n data[i][j] = null\r\n j++\r\n }\r\n i++\r\n }\r\n\r\n // Fill in spreadsheet `data`.\r\n // (this code implies that `cells` aren't necessarily sorted by row and column:\r\n // maybe that's not correct, this piece code was initially copy-pasted\r\n // from some other library that used `XPath`)\r\n for (const cell of cells) {\r\n // Don't discard empty rows or columns at the start.\r\n // https://github.com/catamphetamine/read-excel-file/issues/102\r\n // const rowIndex = cell.row - leftTop.row\r\n // const columnIndex = cell.column - leftTop.column\r\n const rowIndex = cell.row - 1\r\n const columnIndex = cell.column - 1\r\n // Ignore the data in the cell if it's outside of the spreadsheet's \"dimensions\".\r\n if (columnIndex < colsCount && rowIndex < rowsCount) {\r\n data[rowIndex][columnIndex] = cell.value\r\n }\r\n }\r\n\r\n // Fill in the row map.\r\n const { rowMap: rowIndexMap } = options\r\n if (rowIndexMap) {\r\n let i = 0\r\n while (i < data.length) {\r\n rowIndexMap[i] = i\r\n i++\r\n }\r\n }\r\n\r\n // Drop empty columns or rows.\r\n data = dropEmptyRows(\r\n dropEmptyColumns(data, { onlyTrimAtTheEnd: true }),\r\n { onlyTrimAtTheEnd: true, rowIndexMap }\r\n )\r\n\r\n // Optionally transform data before applying `schema`.\r\n if (options.transformData) {\r\n data = options.transformData(data)\r\n // data = options.transformData(data, {\r\n // dropEmptyRowsAndColumns(data) {\r\n // return dropEmptyRows(dropEmptyColumns(data), { rowIndexMap })\r\n // }\r\n // })\r\n }\r\n\r\n return data\r\n}"],"mappings":"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"}
1
+ {"version":3,"file":"getData.js","names":["_dropEmptyRows","_interopRequireDefault","require","_dropEmptyColumns","obj","__esModule","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","minLen","_arrayLikeToArray","n","Object","prototype","toString","slice","constructor","name","from","test","len","arr2","r","l","t","e","u","a","f","push","getData","sheet","options","dimensions","cells","_dimensions","leftTop","rightBottom","colsCount","column","rowsCount","row","data","j","_iterator","_step","cell","rowIndex","columnIndex","rowIndexSourceMap","dropEmptyRows","dropEmptyColumns","onlyTrimAtTheEnd","transformData"],"sources":["../../source/read/getData.js"],"sourcesContent":["import dropEmptyRows from './dropEmptyRows.js'\r\nimport dropEmptyColumns from './dropEmptyColumns.js'\r\n\r\nexport default function getData(sheet, options) {\r\n const { dimensions, cells } = sheet\r\n\r\n // If the sheet is empty.\r\n if (cells.length === 0) {\r\n return []\r\n }\r\n\r\n const [leftTop, rightBottom] = dimensions\r\n\r\n // Don't discard empty rows or columns at the start of the spreadsheet,\r\n // even when the `*.xlsx` file itself tells that the content starts at an offset.\r\n // https://github.com/catamphetamine/read-excel-file/issues/102\r\n // const colsCount = (rightBottom.column - leftTop.column) + 1\r\n // const rowsCount = (rightBottom.row - leftTop.row) + 1\r\n\r\n const colsCount = rightBottom.column\r\n const rowsCount = rightBottom.row\r\n\r\n // Initialize spreadsheet data structure.\r\n let data = new Array(rowsCount)\r\n let i = 0\r\n while (i < rowsCount) {\r\n data[i] = new Array(colsCount)\r\n let j = 0\r\n while (j < colsCount) {\r\n data[i][j] = null\r\n j++\r\n }\r\n i++\r\n }\r\n\r\n // Fill in spreadsheet `data`.\r\n // (this code implies that `cells` aren't necessarily sorted by row and column:\r\n // maybe that's not correct, this piece code was initially copy-pasted\r\n // from some other library that used `XPath`)\r\n for (const cell of cells) {\r\n // Don't discard empty rows or columns at the start of the spreadsheet,\r\n // even when the `*.xlsx` file itself tells that the content starts at an offset.\r\n // https://github.com/catamphetamine/read-excel-file/issues/102\r\n // const rowIndex = cell.row - leftTop.row\r\n // const columnIndex = cell.column - leftTop.column\r\n const rowIndex = cell.row - 1\r\n const columnIndex = cell.column - 1\r\n // Ignore the data in the cell if it's outside of the spreadsheet's \"dimensions\".\r\n if (columnIndex < colsCount && rowIndex < rowsCount) {\r\n data[rowIndex][columnIndex] = cell.value\r\n }\r\n }\r\n\r\n // Fill in the row map.\r\n const { rowIndexSourceMap } = options\r\n if (rowIndexSourceMap) {\r\n let i = 0\r\n while (i < data.length) {\r\n rowIndexSourceMap[i] = i\r\n i++\r\n }\r\n }\r\n\r\n // Drop (discard) empty columns or rows.\r\n //\r\n // Don't discard empty rows or columns at the start or in the middle.\r\n // Only discard empty rows at the bottom or empty columns on the right side.\r\n // The rationale is that the data should be output in the same shape or form\r\n // as it can be seen in the actual spreadsheet.\r\n // If the user decides to discard empty rows or columns, they could do it manually\r\n // by passing `transformData()` function as an option.\r\n //\r\n data = dropEmptyRows(\r\n dropEmptyColumns(data, { onlyTrimAtTheEnd: true }),\r\n { onlyTrimAtTheEnd: true, rowIndexSourceMap }\r\n )\r\n\r\n // Optionally transform data before applying `schema`.\r\n if (options.transformData) {\r\n data = options.transformData(data)\r\n // data = options.transformData(data, {\r\n // dropEmptyRowsAndColumns(data) {\r\n // return dropEmptyRows(dropEmptyColumns(data), { rowIndexSourceMap })\r\n // }\r\n // })\r\n }\r\n\r\n return data\r\n}"],"mappings":"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"}
@@ -78,9 +78,9 @@ function readXlsx(contents, xml) {
78
78
  // Parse sheet data.
79
79
  var sheet = (0, _parseSheet["default"])(getXmlFileContent(filePaths.sheets[sheetId]), xml, values, styles, properties, options);
80
80
  options = _objectSpread({
81
- // Create a `rowIndexMap` for the original dataset, if not passed,
81
+ // Create a `rowIndexSourceMap` for the original dataset, if not passed,
82
82
  // because "empty" rows will be dropped from the input data.
83
- rowMap: []
83
+ rowIndexSourceMap: []
84
84
  }, options);
85
85
 
86
86
  // Get spreadsheet data.
@@ -1 +1 @@
1
- {"version":3,"file":"readXlsx.js","names":["_parseProperties","_interopRequireDefault","require","_parseFilePaths","_parseStyles","_parseSharedStrings","_parseSheet","_getData","obj","__esModule","_typeof","o","Symbol","iterator","constructor","prototype","_createForOfIteratorHelperLoose","allowArrayLike","it","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","Object","toString","slice","name","from","test","arr","len","arr2","ownKeys","e","r","t","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","Number","readXlsx","contents","xml","options","sheet","getXmlFileContent","filePath","Error","concat","filePaths","parseFilePaths","values","sharedStrings","parseSharedStrings","styles","parseStyles","properties","parseProperties","getSheets","sheets","map","_ref","sheetId","getSheetId","createSheetNotFoundError","parseSheet","rowMap","data","getData","_sheet","relationId","_iterator","_step","sheetsList","join"],"sources":["../../source/read/readXlsx.js"],"sourcesContent":["import parseProperties from './parseProperties.js'\r\nimport parseFilePaths from './parseFilePaths.js'\r\nimport parseStyles from './parseStyles.js'\r\nimport parseSharedStrings from './parseSharedStrings.js'\r\nimport parseSheet from './parseSheet.js'\r\nimport getData from './getData.js'\r\n\r\n// For an introduction in reading `*.xlsx` files see \"The minimum viable XLSX reader\":\r\n// https://www.brendanlong.com/the-minimum-viable-xlsx-reader.html\r\n\r\n/**\r\n * Reads an (unzipped) XLSX file structure into a 2D array of cells.\r\n * @param {object} contents - A list of XML files inside XLSX file (which is a zipped directory).\r\n * @param {number?} options.sheet - Workbook sheet id (`1` by default).\r\n * @param {string?} options.dateFormat - Date format, e.g. \"mm/dd/yyyy\". Values having this format template set will be parsed as dates.\r\n * @param {object} contents - A list of XML files inside XLSX file (which is a zipped directory).\r\n * @return {object} An object of shape `{ data, cells, properties }`. `data: string[][]` is an array of rows, each row being an array of cell values. `cells: string[][]` is an array of rows, each row being an array of cells. `properties: object` is the spreadsheet properties (e.g. whether date epoch is 1904 instead of 1900).\r\n */\r\nexport default function readXlsx(contents, xml, options = {}) {\r\n if (!options.sheet) {\r\n options = {\r\n sheet: 1,\r\n ...options\r\n }\r\n }\r\n\r\n const getXmlFileContent = (filePath) => {\r\n if (!contents[filePath]) {\r\n throw new Error(`\"${filePath}\" file not found inside the *.xlsx file zip archive`)\r\n }\r\n return contents[filePath]\r\n }\r\n\r\n // Some Excel editors don't want to use standard naming scheme for sheet files.\r\n // https://github.com/tidyverse/readxl/issues/104\r\n const filePaths = parseFilePaths(getXmlFileContent('xl/_rels/workbook.xml.rels'), xml)\r\n\r\n // Default file path for \"shared strings\": \"xl/sharedStrings.xml\".\r\n const values = filePaths.sharedStrings\r\n ? parseSharedStrings(getXmlFileContent(filePaths.sharedStrings), xml)\r\n : []\r\n\r\n // Default file path for \"styles\": \"xl/styles.xml\".\r\n const styles = filePaths.styles\r\n ? parseStyles(getXmlFileContent(filePaths.styles), xml)\r\n : {}\r\n\r\n const properties = parseProperties(getXmlFileContent('xl/workbook.xml'), xml)\r\n\r\n // A feature for getting the list of sheets in an Excel file.\r\n // https://github.com/catamphetamine/read-excel-file/issues/14\r\n if (options.getSheets) {\r\n return properties.sheets.map(({ name }) => ({\r\n name\r\n }))\r\n }\r\n\r\n // Find the sheet by name, or take the first one.\r\n const sheetId = getSheetId(options.sheet, properties.sheets)\r\n\r\n // If the sheet wasn't found then throw an error.\r\n // Example: \"xl/worksheets/sheet1.xml\".\r\n if (!sheetId || !filePaths.sheets[sheetId]) {\r\n throw createSheetNotFoundError(options.sheet, properties.sheets)\r\n }\r\n\r\n // Parse sheet data.\r\n const sheet = parseSheet(\r\n getXmlFileContent(filePaths.sheets[sheetId]),\r\n xml,\r\n values,\r\n styles,\r\n properties,\r\n options\r\n )\r\n\r\n options = {\r\n // Create a `rowIndexMap` for the original dataset, if not passed,\r\n // because \"empty\" rows will be dropped from the input data.\r\n rowMap: [],\r\n ...options\r\n }\r\n\r\n // Get spreadsheet data.\r\n const data = getData(sheet, options)\r\n\r\n // Can return properties, if required.\r\n if (options.properties) {\r\n return {\r\n data,\r\n properties\r\n }\r\n }\r\n\r\n // Return spreadsheet data.\r\n return data\r\n}\r\n\r\nfunction getSheetId(sheet, sheets) {\r\n if (typeof sheet === 'number') {\r\n const _sheet = sheets[sheet - 1]\r\n return _sheet && _sheet.relationId\r\n }\r\n for (const _sheet of sheets) {\r\n if (_sheet.name === sheet) {\r\n return _sheet.relationId\r\n }\r\n }\r\n}\r\n\r\nfunction createSheetNotFoundError(sheet, sheets) {\r\n const sheetsList = sheets && sheets.map((sheet, i) => `\"${sheet.name}\" (#${i + 1})`).join(', ')\r\n return new Error(`Sheet ${typeof sheet === 'number' ? '#' + sheet : '\"' + sheet + '\"'} not found in the *.xlsx file.${sheets ? ' Available sheets: ' + sheetsList + '.' : ''}`)\r\n}"],"mappings":"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"}
1
+ {"version":3,"file":"readXlsx.js","names":["_parseProperties","_interopRequireDefault","require","_parseFilePaths","_parseStyles","_parseSharedStrings","_parseSheet","_getData","obj","__esModule","_typeof","o","Symbol","iterator","constructor","prototype","_createForOfIteratorHelperLoose","allowArrayLike","it","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","Object","toString","slice","name","from","test","arr","len","arr2","ownKeys","e","r","t","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","Number","readXlsx","contents","xml","options","sheet","getXmlFileContent","filePath","Error","concat","filePaths","parseFilePaths","values","sharedStrings","parseSharedStrings","styles","parseStyles","properties","parseProperties","getSheets","sheets","map","_ref","sheetId","getSheetId","createSheetNotFoundError","parseSheet","rowIndexSourceMap","data","getData","_sheet","relationId","_iterator","_step","sheetsList","join"],"sources":["../../source/read/readXlsx.js"],"sourcesContent":["import parseProperties from './parseProperties.js'\r\nimport parseFilePaths from './parseFilePaths.js'\r\nimport parseStyles from './parseStyles.js'\r\nimport parseSharedStrings from './parseSharedStrings.js'\r\nimport parseSheet from './parseSheet.js'\r\nimport getData from './getData.js'\r\n\r\n// For an introduction in reading `*.xlsx` files see \"The minimum viable XLSX reader\":\r\n// https://www.brendanlong.com/the-minimum-viable-xlsx-reader.html\r\n\r\n/**\r\n * Reads an (unzipped) XLSX file structure into a 2D array of cells.\r\n * @param {object} contents - A list of XML files inside XLSX file (which is a zipped directory).\r\n * @param {number?} options.sheet - Workbook sheet id (`1` by default).\r\n * @param {string?} options.dateFormat - Date format, e.g. \"mm/dd/yyyy\". Values having this format template set will be parsed as dates.\r\n * @param {object} contents - A list of XML files inside XLSX file (which is a zipped directory).\r\n * @return {object} An object of shape `{ data, cells, properties }`. `data: string[][]` is an array of rows, each row being an array of cell values. `cells: string[][]` is an array of rows, each row being an array of cells. `properties: object` is the spreadsheet properties (e.g. whether date epoch is 1904 instead of 1900).\r\n */\r\nexport default function readXlsx(contents, xml, options = {}) {\r\n if (!options.sheet) {\r\n options = {\r\n sheet: 1,\r\n ...options\r\n }\r\n }\r\n\r\n const getXmlFileContent = (filePath) => {\r\n if (!contents[filePath]) {\r\n throw new Error(`\"${filePath}\" file not found inside the *.xlsx file zip archive`)\r\n }\r\n return contents[filePath]\r\n }\r\n\r\n // Some Excel editors don't want to use standard naming scheme for sheet files.\r\n // https://github.com/tidyverse/readxl/issues/104\r\n const filePaths = parseFilePaths(getXmlFileContent('xl/_rels/workbook.xml.rels'), xml)\r\n\r\n // Default file path for \"shared strings\": \"xl/sharedStrings.xml\".\r\n const values = filePaths.sharedStrings\r\n ? parseSharedStrings(getXmlFileContent(filePaths.sharedStrings), xml)\r\n : []\r\n\r\n // Default file path for \"styles\": \"xl/styles.xml\".\r\n const styles = filePaths.styles\r\n ? parseStyles(getXmlFileContent(filePaths.styles), xml)\r\n : {}\r\n\r\n const properties = parseProperties(getXmlFileContent('xl/workbook.xml'), xml)\r\n\r\n // A feature for getting the list of sheets in an Excel file.\r\n // https://github.com/catamphetamine/read-excel-file/issues/14\r\n if (options.getSheets) {\r\n return properties.sheets.map(({ name }) => ({\r\n name\r\n }))\r\n }\r\n\r\n // Find the sheet by name, or take the first one.\r\n const sheetId = getSheetId(options.sheet, properties.sheets)\r\n\r\n // If the sheet wasn't found then throw an error.\r\n // Example: \"xl/worksheets/sheet1.xml\".\r\n if (!sheetId || !filePaths.sheets[sheetId]) {\r\n throw createSheetNotFoundError(options.sheet, properties.sheets)\r\n }\r\n\r\n // Parse sheet data.\r\n const sheet = parseSheet(\r\n getXmlFileContent(filePaths.sheets[sheetId]),\r\n xml,\r\n values,\r\n styles,\r\n properties,\r\n options\r\n )\r\n\r\n options = {\r\n // Create a `rowIndexSourceMap` for the original dataset, if not passed,\r\n // because \"empty\" rows will be dropped from the input data.\r\n rowIndexSourceMap: [],\r\n ...options\r\n }\r\n\r\n // Get spreadsheet data.\r\n const data = getData(sheet, options)\r\n\r\n // Can return properties, if required.\r\n if (options.properties) {\r\n return {\r\n data,\r\n properties\r\n }\r\n }\r\n\r\n // Return spreadsheet data.\r\n return data\r\n}\r\n\r\nfunction getSheetId(sheet, sheets) {\r\n if (typeof sheet === 'number') {\r\n const _sheet = sheets[sheet - 1]\r\n return _sheet && _sheet.relationId\r\n }\r\n for (const _sheet of sheets) {\r\n if (_sheet.name === sheet) {\r\n return _sheet.relationId\r\n }\r\n }\r\n}\r\n\r\nfunction createSheetNotFoundError(sheet, sheets) {\r\n const sheetsList = sheets && sheets.map((sheet, i) => `\"${sheet.name}\" (#${i + 1})`).join(', ')\r\n return new Error(`Sheet ${typeof sheet === 'number' ? '#' + sheet : '\"' + sheet + '\"'} not found in the *.xlsx file.${sheets ? ' Available sheets: ' + sheetsList + '.' : ''}`)\r\n}"],"mappings":"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"}
@@ -6,10 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports["default"] = readXlsxFileContents;
8
8
  var _readXlsx = _interopRequireDefault(require("./readXlsx.js"));
9
- var _mapToObjectsLegacy = _interopRequireDefault(require("./schema/mapToObjects.legacy.js"));
10
- var _mapToObjectsSpreadsheet = _interopRequireDefault(require("./schema/mapToObjects.spreadsheet.js"));
11
- var _convertMapToSchema = _interopRequireDefault(require("./schema/convertMapToSchema.js"));
12
- var _excluded = ["schema", "map"];
9
+ var _mapToObjects = _interopRequireDefault(require("./schema/mapToObjects.js"));
10
+ var _excluded = ["schema"];
13
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14
12
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
15
13
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -20,17 +18,18 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
20
18
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
21
19
  function readXlsxFileContents(entries, xml, _ref) {
22
20
  var schema = _ref.schema,
23
- map = _ref.map,
24
21
  options = _objectWithoutProperties(_ref, _excluded);
25
- if (!schema && map) {
26
- schema = (0, _convertMapToSchema["default"])(map);
22
+ if (options.map) {
23
+ throw new Error('`map` option was removed. Pass a `schema` option instead.');
27
24
  }
28
- // `readXlsx()` adds `options.rowMap`, if not passed.
25
+ // `readXlsx()` function creates `options.rowIndexSourceMap` property.
26
+ // It maps parsed data row indexes to spreadsheet row indexes.
27
+ // That's because empty rows are ignored (discarded) when parsing using `schema`.
29
28
  var result = (0, _readXlsx["default"])(entries, xml, _objectSpread(_objectSpread({}, options), {}, {
30
29
  properties: schema || options.properties
31
30
  }));
32
31
  if (schema) {
33
- return (0, _mapToObjectsSpreadsheet["default"])(_mapToObjectsLegacy["default"], result.data, schema, _objectSpread(_objectSpread({}, options), {}, {
32
+ return (0, _mapToObjects["default"])(result.data, schema, _objectSpread(_objectSpread({}, options), {}, {
34
33
  properties: result.properties
35
34
  }));
36
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"readXlsxFileContents.js","names":["_readXlsx","_interopRequireDefault","require","_mapToObjectsLegacy","_mapToObjectsSpreadsheet","_convertMapToSchema","_excluded","obj","__esModule","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","_typeof","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","i","sourceSymbolKeys","indexOf","prototype","propertyIsEnumerable","sourceKeys","readXlsxFileContents","entries","xml","_ref","schema","map","options","convertMapToSchema","result","readXlsx","properties","mapToObjectsSpreadsheetBehavior","mapToObjectsLegacyBehavior","data"],"sources":["../../source/read/readXlsxFileContents.js"],"sourcesContent":["import readXlsx from './readXlsx.js'\r\n\r\nimport mapToObjectsLegacyBehavior from './schema/mapToObjects.legacy.js'\r\nimport mapToObjectsSpreadsheetBehavior from './schema/mapToObjects.spreadsheet.js'\r\n\r\nimport convertMapToSchema from './schema/convertMapToSchema.js'\r\n\r\nexport default function readXlsxFileContents(entries, xml, { schema, map, ...options}) {\r\n\tif (!schema && map) {\r\n\t\tschema = convertMapToSchema(map)\r\n\t}\r\n\t// `readXlsx()` adds `options.rowMap`, if not passed.\r\n\tconst result = readXlsx(entries, xml, { ...options, properties: schema || options.properties })\r\n\tif (schema) {\r\n\t\treturn mapToObjectsSpreadsheetBehavior(mapToObjectsLegacyBehavior, result.data, schema, {\r\n\t\t\t...options,\r\n\t\t\tproperties: result.properties\r\n\t\t})\r\n\t}\r\n\treturn result\r\n}"],"mappings":"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"}
1
+ {"version":3,"file":"readXlsxFileContents.js","names":["_readXlsx","_interopRequireDefault","require","_mapToObjects","_excluded","obj","__esModule","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","_typeof","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","i","sourceSymbolKeys","indexOf","prototype","propertyIsEnumerable","sourceKeys","readXlsxFileContents","entries","xml","_ref","schema","options","map","Error","result","readXlsx","properties","mapToObjects","data"],"sources":["../../source/read/readXlsxFileContents.js"],"sourcesContent":["import readXlsx from './readXlsx.js'\r\n\r\nimport mapToObjects from './schema/mapToObjects.js'\r\n\r\nexport default function readXlsxFileContents(entries, xml, { schema, ...options}) {\r\n\tif (options.map) {\r\n\t\tthrow new Error('`map` option was removed. Pass a `schema` option instead.')\r\n\t}\r\n\t// `readXlsx()` function creates `options.rowIndexSourceMap` property.\r\n\t// It maps parsed data row indexes to spreadsheet row indexes.\r\n\t// That's because empty rows are ignored (discarded) when parsing using `schema`.\r\n\tconst result = readXlsx(entries, xml, { ...options, properties: schema || options.properties })\r\n\tif (schema) {\r\n\t\treturn mapToObjects(result.data, schema, {\r\n\t\t\t...options,\r\n\t\t\tproperties: result.properties\r\n\t\t})\r\n\t}\r\n\treturn result\r\n}"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"readXlsxFileNode.test.js","names":["_path","_interopRequireDefault","require","_readXlsxFileNode","obj","__esModule","describe","it","schema","prop","type","Date","Number","required","Boolean","String","parse","value","rowMap","readXlsxFileNode","path","resolve","then","_ref","rows","date","getTime","should","deep","equal","convertToUTCTimezone","numberOfStudents","course","isFree","cost","title","contact","map","_ref2","errors","getTimezoneOffset"],"sources":["../../source/read/readXlsxFileNode.test.js"],"sourcesContent":["import path from 'path'\r\n\r\nimport readXlsxFileNode from './readXlsxFileNode.js'\r\n\r\ndescribe('readXlsxFileNode', () => {\r\n\tit('should read *.xlsx file on Node.js and parse it to JSON', () => {\r\n\t\tconst schema = {\r\n\t\t\t'START DATE': {\r\n\t\t\t\tprop: 'date',\r\n\t\t\t\ttype: Date\r\n\t\t\t},\r\n\t\t\t'NUMBER OF STUDENTS': {\r\n\t\t\t\tprop: 'numberOfStudents',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\t'COURSE': {\r\n\t\t\t\tprop: 'course',\r\n\t\t\t\ttype: {\r\n\t\t\t\t\t'IS FREE': {\r\n\t\t\t\t\t\tprop: 'isFree',\r\n\t\t\t\t\t\ttype: Boolean\r\n\t\t\t\t\t\t// Excel stores booleans as numbers:\r\n\t\t\t\t\t\t// `1` is `true` and `0` is `false`.\r\n\t\t\t\t\t\t// Such numbers are parsed into booleans.\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'COST': {\r\n\t\t\t\t\t\tprop: 'cost',\r\n\t\t\t\t\t\ttype: Number\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'COURSE TITLE': {\r\n\t\t\t\t\t\tprop: 'title',\r\n\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t'CONTACT': {\r\n\t\t\t\tprop: 'contact',\r\n\t\t\t\trequired: true,\r\n\t\t\t\tparse(value) {\r\n\t\t\t\t\treturn '+11234567890'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst rowMap = []\r\n\r\n\t\treturn readXlsxFileNode(path.resolve('./test/spreadsheets/course.xlsx'), { schema, rowMap }).then(({ rows }) => {\r\n\t\t\trows[0].date = rows[0].date.getTime()\r\n\t\t\trows.should.deep.equal([{\r\n\t\t\t\tdate: convertToUTCTimezone(new Date(2018, 2, 24)).getTime(),\r\n\t\t\t\tnumberOfStudents: 123,\r\n\t\t\t\tcourse: {\r\n\t\t\t\t\tisFree: false,\r\n\t\t\t\t\tcost: 210.45,\r\n\t\t\t\t\ttitle: 'Chemistry'\r\n\t\t\t\t},\r\n\t\t\t\tcontact: '+11234567890'\r\n\t\t\t}])\r\n\t\t\trowMap.should.deep.equal([0, 1])\r\n\t\t})\r\n\t})\r\n\r\n\tit('should read *.xlsx file on Node.js and map it to JSON', () => {\r\n\t\tconst map = {\r\n\t\t\t'START DATE': 'date',\r\n\t\t\t'NUMBER OF STUDENTS': 'numberOfStudents',\r\n\t\t\t'COURSE': {\r\n\t\t\t\t'course': {\r\n\t\t\t\t\t'IS FREE': 'isFree',\r\n\t\t\t\t\t'COST': 'cost',\r\n\t\t\t\t\t'COURSE TITLE': 'title'\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t'CONTACT': 'contact'\r\n\t\t}\r\n\r\n\t\tconst rowMap = []\r\n\r\n\t\treturn readXlsxFileNode(path.resolve('./test/spreadsheets/course.xlsx'), { map, rowMap }).then(({ rows, errors }) => {\r\n\t\t\terrors.should.deep.equal([])\r\n\t\t\trows[0].date = rows[0].date.getTime()\r\n\t\t\trows.should.deep.equal([{\r\n\t\t\t\tdate: convertToUTCTimezone(new Date(2018, 2, 24)).getTime(),\r\n\t\t\t\tnumberOfStudents: 123,\r\n\t\t\t\tcourse: {\r\n\t\t\t\t\tisFree: false,\r\n\t\t\t\t\tcost: 210.45,\r\n\t\t\t\t\ttitle: 'Chemistry'\r\n\t\t\t\t},\r\n\t\t\t\tcontact: '(123) 456-7890'\r\n\t\t\t}])\r\n\t\t\trowMap.should.deep.equal([0, 1])\r\n\t\t})\r\n\t})\r\n})\r\n\r\n// Converts timezone to UTC while preserving the same time\r\nfunction convertToUTCTimezone(date) {\r\n\t// Doesn't account for leap seconds but I guess that's ok\r\n\t// given that javascript's own `Date()` does not either.\r\n\t// https://www.timeanddate.com/time/leap-seconds-background.html\r\n\t//\r\n\t// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset\r\n\t//\r\n\treturn new Date(date.getTime() - date.getTimezoneOffset() * 60 * 1000)\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"readXlsxFileNode.test.js","names":["_path","_interopRequireDefault","require","_readXlsxFileNode","obj","__esModule","describe","it","schema","date","column","type","Date","numberOfStudents","Number","required","course","isFree","Boolean","cost","title","String","contact","value","rowIndexSourceMap","readXlsxFileNode","path","resolve","then","_ref","rows","getTime","should","deep","equal","convertToUTCTimezone","getTimezoneOffset"],"sources":["../../source/read/readXlsxFileNode.test.js"],"sourcesContent":["import path from 'path'\r\n\r\nimport readXlsxFileNode from './readXlsxFileNode.js'\r\n\r\ndescribe('readXlsxFileNode', () => {\r\n\tit('should read *.xlsx file on Node.js and parse it to JSON', () => {\r\n\t\tconst schema = {\r\n\t\t\tdate: {\r\n\t\t\t\tcolumn: 'START DATE',\r\n\t\t\t\ttype: Date\r\n\t\t\t},\r\n\t\t\tnumberOfStudents: {\r\n\t\t\t\tcolumn: 'NUMBER OF STUDENTS',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\tcourse: {\r\n\t\t\t\tschema: {\r\n\t\t\t\t\tisFree: {\r\n\t\t\t\t\t\tcolumn: 'IS FREE',\r\n\t\t\t\t\t\ttype: Boolean\r\n\t\t\t\t\t\t// Excel stores booleans as numbers:\r\n\t\t\t\t\t\t// `1` is `true` and `0` is `false`.\r\n\t\t\t\t\t\t// Such numbers are parsed into booleans.\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcost: {\r\n\t\t\t\t\t\tcolumn: 'COST',\r\n\t\t\t\t\t\ttype: Number\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttitle: {\r\n\t\t\t\t\t\tcolumn: 'COURSE TITLE',\r\n\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tcontact: {\r\n\t\t\t\tcolumn: 'CONTACT',\r\n\t\t\t\trequired: true,\r\n\t\t\t\ttype(value) {\r\n\t\t\t\t\treturn '+11234567890'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst rowIndexSourceMap = []\r\n\r\n\t\treturn readXlsxFileNode(path.resolve('./test/spreadsheets/course.xlsx'), { schema, rowIndexSourceMap }).then(({ rows }) => {\r\n\t\t\trows[0].date = rows[0].date.getTime()\r\n\t\t\trows.should.deep.equal([{\r\n\t\t\t\tdate: convertToUTCTimezone(new Date(2018, 2, 24)).getTime(),\r\n\t\t\t\tnumberOfStudents: 123,\r\n\t\t\t\tcourse: {\r\n\t\t\t\t\tisFree: false,\r\n\t\t\t\t\tcost: 210.45,\r\n\t\t\t\t\ttitle: 'Chemistry'\r\n\t\t\t\t},\r\n\t\t\t\tcontact: '+11234567890'\r\n\t\t\t}])\r\n\t\t\trowIndexSourceMap.should.deep.equal([0, 1])\r\n\t\t})\r\n\t})\r\n})\r\n\r\n// Converts timezone to UTC while preserving the same time\r\nfunction convertToUTCTimezone(date) {\r\n\t// Doesn't account for leap seconds but I guess that's ok\r\n\t// given that javascript's own `Date()` does not either.\r\n\t// https://www.timeanddate.com/time/leap-seconds-background.html\r\n\t//\r\n\t// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset\r\n\t//\r\n\treturn new Date(date.getTime() - date.getTimezoneOffset() * 60 * 1000)\r\n}\r\n"],"mappings":";;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,iBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAoD,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAEpDE,QAAQ,CAAC,kBAAkB,EAAE,YAAM;EAClCC,EAAE,CAAC,yDAAyD,EAAE,YAAM;IACnE,IAAMC,MAAM,GAAG;MACdC,IAAI,EAAE;QACLC,MAAM,EAAE,YAAY;QACpBC,IAAI,EAAEC;MACP,CAAC;MACDC,gBAAgB,EAAE;QACjBH,MAAM,EAAE,oBAAoB;QAC5BC,IAAI,EAAEG,MAAM;QACZC,QAAQ,EAAE;MACX,CAAC;MACDC,MAAM,EAAE;QACPR,MAAM,EAAE;UACPS,MAAM,EAAE;YACPP,MAAM,EAAE,SAAS;YACjBC,IAAI,EAAEO;YACN;YACA;YACA;UACD,CAAC;;UACDC,IAAI,EAAE;YACLT,MAAM,EAAE,MAAM;YACdC,IAAI,EAAEG;UACP,CAAC;UACDM,KAAK,EAAE;YACNV,MAAM,EAAE,cAAc;YACtBC,IAAI,EAAEU;UACP;QACD;MACD,CAAC;MACDC,OAAO,EAAE;QACRZ,MAAM,EAAE,SAAS;QACjBK,QAAQ,EAAE,IAAI;QACdJ,IAAI,WAAAA,KAACY,KAAK,EAAE;UACX,OAAO,cAAc;QACtB;MACD;IACD,CAAC;IAED,IAAMC,iBAAiB,GAAG,EAAE;IAE5B,OAAO,IAAAC,4BAAgB,EAACC,gBAAI,CAACC,OAAO,CAAC,iCAAiC,CAAC,EAAE;MAAEnB,MAAM,EAANA,MAAM;MAAEgB,iBAAiB,EAAjBA;IAAkB,CAAC,CAAC,CAACI,IAAI,CAAC,UAAAC,IAAA,EAAc;MAAA,IAAXC,IAAI,GAAAD,IAAA,CAAJC,IAAI;MACnHA,IAAI,CAAC,CAAC,CAAC,CAACrB,IAAI,GAAGqB,IAAI,CAAC,CAAC,CAAC,CAACrB,IAAI,CAACsB,OAAO,CAAC,CAAC;MACrCD,IAAI,CAACE,MAAM,CAACC,IAAI,CAACC,KAAK,CAAC,CAAC;QACvBzB,IAAI,EAAE0B,oBAAoB,CAAC,IAAIvB,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAACmB,OAAO,CAAC,CAAC;QAC3DlB,gBAAgB,EAAE,GAAG;QACrBG,MAAM,EAAE;UACPC,MAAM,EAAE,KAAK;UACbE,IAAI,EAAE,MAAM;UACZC,KAAK,EAAE;QACR,CAAC;QACDE,OAAO,EAAE;MACV,CAAC,CAAC,CAAC;MACHE,iBAAiB,CAACQ,MAAM,CAACC,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC;EACH,CAAC,CAAC;AACH,CAAC,CAAC;;AAEF;AACA,SAASC,oBAAoBA,CAAC1B,IAAI,EAAE;EACnC;EACA;EACA;EACA;EACA;EACA;EACA,OAAO,IAAIG,IAAI,CAACH,IAAI,CAACsB,OAAO,CAAC,CAAC,GAAGtB,IAAI,CAAC2B,iBAAiB,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AACvE"}