read-excel-file 5.2.21 → 5.2.25

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 (41) hide show
  1. package/CHANGELOG.md +10 -2
  2. package/README.md +38 -1
  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/coordinates.js +4 -2
  6. package/commonjs/read/coordinates.js.map +1 -1
  7. package/commonjs/read/getData.js +14 -6
  8. package/commonjs/read/getData.js.map +1 -1
  9. package/commonjs/read/parseDimensions.js +2 -0
  10. package/commonjs/read/parseDimensions.js.map +1 -1
  11. package/commonjs/read/parseSheet.js +3 -1
  12. package/commonjs/read/parseSheet.js.map +1 -1
  13. package/commonjs/read/readXlsxFileNode.js +2 -2
  14. package/commonjs/read/readXlsxFileNode.js.map +1 -1
  15. package/commonjs/read/readXlsxFileWebWorker.js +29 -0
  16. package/commonjs/read/readXlsxFileWebWorker.js.map +1 -0
  17. package/commonjs/xml/{xmlNode.js → xml.js} +1 -1
  18. package/commonjs/xml/xml.js.map +1 -0
  19. package/modules/read/coordinates.js +3 -2
  20. package/modules/read/coordinates.js.map +1 -1
  21. package/modules/read/getData.js +14 -6
  22. package/modules/read/getData.js.map +1 -1
  23. package/modules/read/parseDimensions.js +3 -1
  24. package/modules/read/parseDimensions.js.map +1 -1
  25. package/modules/read/parseSheet.js +3 -1
  26. package/modules/read/parseSheet.js.map +1 -1
  27. package/modules/read/readXlsxFileNode.js +1 -1
  28. package/modules/read/readXlsxFileNode.js.map +1 -1
  29. package/modules/read/readXlsxFileWebWorker.js +18 -0
  30. package/modules/read/readXlsxFileWebWorker.js.map +1 -0
  31. package/modules/xml/{xmlNode.js → xml.js} +1 -1
  32. package/modules/xml/xml.js.map +1 -0
  33. package/node/package.json +1 -1
  34. package/package.json +2 -2
  35. package/schema/package.json +1 -1
  36. package/web-worker/index.commonjs.js +6 -0
  37. package/web-worker/index.d.ts +17 -0
  38. package/web-worker/index.js +5 -0
  39. package/web-worker/package.json +9 -0
  40. package/commonjs/xml/xmlNode.js.map +0 -1
  41. package/modules/xml/xmlNode.js.map +0 -1
@@ -30,7 +30,9 @@ function calculateDimensions(cells) {
30
30
  row: maxRow,
31
31
  column: maxCol
32
32
  }];
33
- }
33
+ } // Converts a letter coordinate to a digit coordinate.
34
+ // Examples: "A" -> 1, "B" -> 2, "Z" -> 26, "AA" -> 27, etc.
35
+
34
36
 
35
37
  function columnLettersToNumber(columnLetters) {
36
38
  // `for ... of ...` would require Babel polyfill for iterating a string.
@@ -47,7 +49,7 @@ function columnLettersToNumber(columnLetters) {
47
49
  }
48
50
 
49
51
  function parseCellCoordinates(coords) {
50
- // Examples: "AA2091", "R988", "B1"
52
+ // Coordinate examples: "AA2091", "R988", "B1".
51
53
  coords = coords.split(/(\d+)/);
52
54
  return [// Row.
53
55
  parseInt(coords[1]), // Column.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../source/read/coordinates.js"],"names":["LETTERS","calculateDimensions","cells","comparator","a","b","allRows","map","cell","row","sort","allCols","column","minRow","maxRow","length","minCol","maxCol","columnLettersToNumber","columnLetters","n","i","indexOf","parseCellCoordinates","coords","split","parseInt","trim"],"mappings":";;;;;;;AAAA;AACA,IAAMA,OAAO,GAAG,CAAC,EAAD,EAAK,GAAL,EAAU,GAAV,EAAe,GAAf,EAAoB,GAApB,EAAyB,GAAzB,EAA8B,GAA9B,EAAmC,GAAnC,EAAwC,GAAxC,EAA6C,GAA7C,EAAkD,GAAlD,EAAuD,GAAvD,EAA4D,GAA5D,EAAiE,GAAjE,EAAsE,GAAtE,EAA2E,GAA3E,EAAgF,GAAhF,EAAqF,GAArF,EAA0F,GAA1F,EAA+F,GAA/F,EAAoG,GAApG,EAAyG,GAAzG,EAA8G,GAA9G,EAAmH,GAAnH,EAAwH,GAAxH,EAA6H,GAA7H,EAAkI,GAAlI,CAAhB;;AAEO,SAASC,mBAAT,CAA8BC,KAA9B,EAAqC;AAC1C,MAAMC,UAAU,GAAG,SAAbA,UAAa,CAACC,CAAD,EAAIC,CAAJ;AAAA,WAAUD,CAAC,GAAGC,CAAd;AAAA,GAAnB;;AACA,MAAMC,OAAO,GAAGJ,KAAK,CAACK,GAAN,CAAU,UAAAC,IAAI;AAAA,WAAIA,IAAI,CAACC,GAAT;AAAA,GAAd,EAA4BC,IAA5B,CAAiCP,UAAjC,CAAhB;AACA,MAAMQ,OAAO,GAAGT,KAAK,CAACK,GAAN,CAAU,UAAAC,IAAI;AAAA,WAAIA,IAAI,CAACI,MAAT;AAAA,GAAd,EAA+BF,IAA/B,CAAoCP,UAApC,CAAhB;AACA,MAAMU,MAAM,GAAGP,OAAO,CAAC,CAAD,CAAtB;AACA,MAAMQ,MAAM,GAAGR,OAAO,CAACA,OAAO,CAACS,MAAR,GAAiB,CAAlB,CAAtB;AACA,MAAMC,MAAM,GAAGL,OAAO,CAAC,CAAD,CAAtB;AACA,MAAMM,MAAM,GAAGN,OAAO,CAACA,OAAO,CAACI,MAAR,GAAiB,CAAlB,CAAtB;AAEA,SAAO,CACL;AAAEN,IAAAA,GAAG,EAAEI,MAAP;AAAeD,IAAAA,MAAM,EAAEI;AAAvB,GADK,EAEL;AAAEP,IAAAA,GAAG,EAAEK,MAAP;AAAeF,IAAAA,MAAM,EAAEK;AAAvB,GAFK,CAAP;AAID;;AAED,SAASC,qBAAT,CAA+BC,aAA/B,EAA8C;AAC5C;AACA,MAAIC,CAAC,GAAG,CAAR;AACA,MAAIC,CAAC,GAAG,CAAR;;AACA,SAAOA,CAAC,GAAGF,aAAa,CAACJ,MAAzB,EAAiC;AAC/BK,IAAAA,CAAC,IAAI,EAAL;AACAA,IAAAA,CAAC,IAAIpB,OAAO,CAACsB,OAAR,CAAgBH,aAAa,CAACE,CAAD,CAA7B,CAAL;AACAA,IAAAA,CAAC;AACF;;AACD,SAAOD,CAAP;AACD;;AAEM,SAASG,oBAAT,CAA8BC,MAA9B,EAAsC;AAC3C;AACAA,EAAAA,MAAM,GAAGA,MAAM,CAACC,KAAP,CAAa,OAAb,CAAT;AACA,SAAO,CACL;AACAC,EAAAA,QAAQ,CAACF,MAAM,CAAC,CAAD,CAAP,CAFH,EAGL;AACAN,EAAAA,qBAAqB,CAACM,MAAM,CAAC,CAAD,CAAN,CAAUG,IAAV,EAAD,CAJhB,CAAP;AAMD","sourcesContent":["// Maps \"A1\"-like coordinates to `{ row, column }` numeric coordinates.\r\nconst LETTERS = [\"\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\"]\r\n\r\nexport function calculateDimensions (cells) {\r\n const comparator = (a, b) => a - b\r\n const allRows = cells.map(cell => cell.row).sort(comparator)\r\n const allCols = cells.map(cell => cell.column).sort(comparator)\r\n const minRow = allRows[0]\r\n const maxRow = allRows[allRows.length - 1]\r\n const minCol = allCols[0]\r\n const maxCol = allCols[allCols.length - 1]\r\n\r\n return [\r\n { row: minRow, column: minCol },\r\n { row: maxRow, column: maxCol }\r\n ]\r\n}\r\n\r\nfunction columnLettersToNumber(columnLetters) {\r\n // `for ... of ...` would require Babel polyfill for iterating a string.\r\n let n = 0\r\n let i = 0\r\n while (i < columnLetters.length) {\r\n n *= 26\r\n n += LETTERS.indexOf(columnLetters[i])\r\n i++\r\n }\r\n return n\r\n}\r\n\r\nexport function parseCellCoordinates(coords) {\r\n // Examples: \"AA2091\", \"R988\", \"B1\"\r\n coords = coords.split(/(\\d+)/)\r\n return [\r\n // Row.\r\n parseInt(coords[1]),\r\n // Column.\r\n columnLettersToNumber(coords[0].trim())\r\n ]\r\n}"],"file":"coordinates.js"}
1
+ {"version":3,"sources":["../../source/read/coordinates.js"],"names":["LETTERS","calculateDimensions","cells","comparator","a","b","allRows","map","cell","row","sort","allCols","column","minRow","maxRow","length","minCol","maxCol","columnLettersToNumber","columnLetters","n","i","indexOf","parseCellCoordinates","coords","split","parseInt","trim"],"mappings":";;;;;;;AAAA;AACA,IAAMA,OAAO,GAAG,CAAC,EAAD,EAAK,GAAL,EAAU,GAAV,EAAe,GAAf,EAAoB,GAApB,EAAyB,GAAzB,EAA8B,GAA9B,EAAmC,GAAnC,EAAwC,GAAxC,EAA6C,GAA7C,EAAkD,GAAlD,EAAuD,GAAvD,EAA4D,GAA5D,EAAiE,GAAjE,EAAsE,GAAtE,EAA2E,GAA3E,EAAgF,GAAhF,EAAqF,GAArF,EAA0F,GAA1F,EAA+F,GAA/F,EAAoG,GAApG,EAAyG,GAAzG,EAA8G,GAA9G,EAAmH,GAAnH,EAAwH,GAAxH,EAA6H,GAA7H,EAAkI,GAAlI,CAAhB;;AAEO,SAASC,mBAAT,CAA8BC,KAA9B,EAAqC;AAC1C,MAAMC,UAAU,GAAG,SAAbA,UAAa,CAACC,CAAD,EAAIC,CAAJ;AAAA,WAAUD,CAAC,GAAGC,CAAd;AAAA,GAAnB;;AACA,MAAMC,OAAO,GAAGJ,KAAK,CAACK,GAAN,CAAU,UAAAC,IAAI;AAAA,WAAIA,IAAI,CAACC,GAAT;AAAA,GAAd,EAA4BC,IAA5B,CAAiCP,UAAjC,CAAhB;AACA,MAAMQ,OAAO,GAAGT,KAAK,CAACK,GAAN,CAAU,UAAAC,IAAI;AAAA,WAAIA,IAAI,CAACI,MAAT;AAAA,GAAd,EAA+BF,IAA/B,CAAoCP,UAApC,CAAhB;AACA,MAAMU,MAAM,GAAGP,OAAO,CAAC,CAAD,CAAtB;AACA,MAAMQ,MAAM,GAAGR,OAAO,CAACA,OAAO,CAACS,MAAR,GAAiB,CAAlB,CAAtB;AACA,MAAMC,MAAM,GAAGL,OAAO,CAAC,CAAD,CAAtB;AACA,MAAMM,MAAM,GAAGN,OAAO,CAACA,OAAO,CAACI,MAAR,GAAiB,CAAlB,CAAtB;AAEA,SAAO,CACL;AAAEN,IAAAA,GAAG,EAAEI,MAAP;AAAeD,IAAAA,MAAM,EAAEI;AAAvB,GADK,EAEL;AAAEP,IAAAA,GAAG,EAAEK,MAAP;AAAeF,IAAAA,MAAM,EAAEK;AAAvB,GAFK,CAAP;AAID,C,CAED;AACA;;;AACA,SAASC,qBAAT,CAA+BC,aAA/B,EAA8C;AAC5C;AACA,MAAIC,CAAC,GAAG,CAAR;AACA,MAAIC,CAAC,GAAG,CAAR;;AACA,SAAOA,CAAC,GAAGF,aAAa,CAACJ,MAAzB,EAAiC;AAC/BK,IAAAA,CAAC,IAAI,EAAL;AACAA,IAAAA,CAAC,IAAIpB,OAAO,CAACsB,OAAR,CAAgBH,aAAa,CAACE,CAAD,CAA7B,CAAL;AACAA,IAAAA,CAAC;AACF;;AACD,SAAOD,CAAP;AACD;;AAEM,SAASG,oBAAT,CAA8BC,MAA9B,EAAsC;AAC3C;AACAA,EAAAA,MAAM,GAAGA,MAAM,CAACC,KAAP,CAAa,OAAb,CAAT;AACA,SAAO,CACL;AACAC,EAAAA,QAAQ,CAACF,MAAM,CAAC,CAAD,CAAP,CAFH,EAGL;AACAN,EAAAA,qBAAqB,CAACM,MAAM,CAAC,CAAD,CAAN,CAAUG,IAAV,EAAD,CAJhB,CAAP;AAMD","sourcesContent":["// Maps \"A1\"-like coordinates to `{ row, column }` numeric coordinates.\r\nconst LETTERS = [\"\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\"]\r\n\r\nexport function calculateDimensions (cells) {\r\n const comparator = (a, b) => a - b\r\n const allRows = cells.map(cell => cell.row).sort(comparator)\r\n const allCols = cells.map(cell => cell.column).sort(comparator)\r\n const minRow = allRows[0]\r\n const maxRow = allRows[allRows.length - 1]\r\n const minCol = allCols[0]\r\n const maxCol = allCols[allCols.length - 1]\r\n\r\n return [\r\n { row: minRow, column: minCol },\r\n { row: maxRow, column: maxCol }\r\n ]\r\n}\r\n\r\n// Converts a letter coordinate to a digit coordinate.\r\n// Examples: \"A\" -> 1, \"B\" -> 2, \"Z\" -> 26, \"AA\" -> 27, etc.\r\nfunction columnLettersToNumber(columnLetters) {\r\n // `for ... of ...` would require Babel polyfill for iterating a string.\r\n let n = 0\r\n let i = 0\r\n while (i < columnLetters.length) {\r\n n *= 26\r\n n += LETTERS.indexOf(columnLetters[i])\r\n i++\r\n }\r\n return n\r\n}\r\n\r\nexport function parseCellCoordinates(coords) {\r\n // Coordinate examples: \"AA2091\", \"R988\", \"B1\".\r\n coords = coords.split(/(\\d+)/)\r\n return [\r\n // Row.\r\n parseInt(coords[1]),\r\n // Column.\r\n columnLettersToNumber(coords[0].trim())\r\n ]\r\n}"],"file":"coordinates.js"}
@@ -35,10 +35,14 @@ function getData(sheet, options) {
35
35
 
36
36
  var _dimensions = _slicedToArray(dimensions, 2),
37
37
  leftTop = _dimensions[0],
38
- rightBottom = _dimensions[1];
38
+ rightBottom = _dimensions[1]; // Don't discard empty rows or columns at the start.
39
+ // https://github.com/catamphetamine/read-excel-file/issues/102
40
+ // const colsCount = (rightBottom.column - leftTop.column) + 1
41
+ // const rowsCount = (rightBottom.row - leftTop.row) + 1
39
42
 
40
- var colsCount = rightBottom.column - leftTop.column + 1;
41
- var rowsCount = rightBottom.row - leftTop.row + 1; // Initialize spreadsheet data structure.
43
+
44
+ var colsCount = rightBottom.column;
45
+ var rowsCount = rightBottom.row; // Initialize spreadsheet data structure.
42
46
 
43
47
  var data = new Array(rowsCount);
44
48
  var i = 0;
@@ -61,9 +65,13 @@ function getData(sheet, options) {
61
65
 
62
66
  for (var _iterator = _createForOfIteratorHelperLoose(cells), _step; !(_step = _iterator()).done;) {
63
67
  var cell = _step.value;
64
- var row = cell.row - leftTop.row;
65
- var column = cell.column - leftTop.column;
66
- data[row][column] = cell.value;
68
+ // Don't discard empty rows or columns at the start.
69
+ // https://github.com/catamphetamine/read-excel-file/issues/102
70
+ // const rowIndex = cell.row - leftTop.row
71
+ // const columnIndex = cell.column - leftTop.column
72
+ var rowIndex = cell.row - 1;
73
+ var columnIndex = cell.column - 1;
74
+ data[rowIndex][columnIndex] = cell.value;
67
75
  } // Fill in the row map.
68
76
 
69
77
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../source/read/getData.js"],"names":["getData","sheet","options","dimensions","cells","length","leftTop","rightBottom","colsCount","column","rowsCount","row","data","Array","i","j","cell","value","rowMap","onlyTrimAtTheEnd","transformData"],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;;;;;;;;;;;AAEe,SAASA,OAAT,CAAiBC,KAAjB,EAAwBC,OAAxB,EAAiC;AAC9C,MAAQC,UAAR,GAA8BF,KAA9B,CAAQE,UAAR;AAAA,MAAoBC,KAApB,GAA8BH,KAA9B,CAAoBG,KAApB,CAD8C,CAG9C;;AACA,MAAIA,KAAK,CAACC,MAAN,KAAiB,CAArB,EAAwB;AACtB,WAAO,EAAP;AACD;;AAED,mCAA+BF,UAA/B;AAAA,MAAOG,OAAP;AAAA,MAAgBC,WAAhB;;AAEA,MAAMC,SAAS,GAAID,WAAW,CAACE,MAAZ,GAAqBH,OAAO,CAACG,MAA9B,GAAwC,CAA1D;AACA,MAAMC,SAAS,GAAIH,WAAW,CAACI,GAAZ,GAAkBL,OAAO,CAACK,GAA3B,GAAkC,CAApD,CAX8C,CAa9C;;AACA,MAAIC,IAAI,GAAG,IAAIC,KAAJ,CAAUH,SAAV,CAAX;AACA,MAAII,CAAC,GAAG,CAAR;;AACA,SAAOA,CAAC,GAAGJ,SAAX,EAAsB;AACpBE,IAAAA,IAAI,CAACE,CAAD,CAAJ,GAAU,IAAID,KAAJ,CAAUL,SAAV,CAAV;AACA,QAAIO,CAAC,GAAG,CAAR;;AACA,WAAOA,CAAC,GAAGP,SAAX,EAAsB;AACpBI,MAAAA,IAAI,CAACE,CAAD,CAAJ,CAAQC,CAAR,IAAa,IAAb;AACAA,MAAAA,CAAC;AACF;;AACDD,IAAAA,CAAC;AACF,GAxB6C,CA0B9C;AACA;AACA;AACA;;;AACA,uDAAmBV,KAAnB,wCAA0B;AAAA,QAAfY,IAAe;AACxB,QAAML,GAAG,GAAGK,IAAI,CAACL,GAAL,GAAWL,OAAO,CAACK,GAA/B;AACA,QAAMF,MAAM,GAAGO,IAAI,CAACP,MAAL,GAAcH,OAAO,CAACG,MAArC;AACAG,IAAAA,IAAI,CAACD,GAAD,CAAJ,CAAUF,MAAV,IAAoBO,IAAI,CAACC,KAAzB;AACD,GAlC6C,CAoC9C;;;AACA,MAAQC,MAAR,GAAmBhB,OAAnB,CAAQgB,MAAR;;AACA,MAAIA,MAAJ,EAAY;AACV,QAAIJ,GAAC,GAAG,CAAR;;AACA,WAAOA,GAAC,GAAGF,IAAI,CAACP,MAAhB,EAAwB;AACtBa,MAAAA,MAAM,CAACJ,GAAD,CAAN,GAAYA,GAAZ;AACAA,MAAAA,GAAC;AACF;AACF,GA5C6C,CA8C9C;;;AACAF,EAAAA,IAAI,GAAG,+BACL,kCAAiBA,IAAjB,EAAuB;AAAEO,IAAAA,gBAAgB,EAAE;AAApB,GAAvB,CADK,EAEL;AAAEA,IAAAA,gBAAgB,EAAE,IAApB;AAA0BD,IAAAA,MAAM,EAANA;AAA1B,GAFK,CAAP,CA/C8C,CAoD9C;;AACA,MAAIhB,OAAO,CAACkB,aAAZ,EAA2B;AACzBR,IAAAA,IAAI,GAAGV,OAAO,CAACkB,aAAR,CAAsBR,IAAtB,CAAP,CADyB,CAEzB;AACA;AACA;AACA;AACA;AACD;;AAED,SAAOA,IAAP;AACD","sourcesContent":["import dropEmptyRows from './dropEmptyRows'\r\nimport dropEmptyColumns from './dropEmptyColumns'\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 const colsCount = (rightBottom.column - leftTop.column) + 1\r\n const rowsCount = (rightBottom.row - leftTop.row) + 1\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 structure.\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 const row = cell.row - leftTop.row\r\n const column = cell.column - leftTop.column\r\n data[row][column] = cell.value\r\n }\r\n\r\n // Fill in the row map.\r\n const { rowMap } = options\r\n if (rowMap) {\r\n let i = 0\r\n while (i < data.length) {\r\n rowMap[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, rowMap }\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), { rowMap })\r\n // }\r\n // })\r\n }\r\n\r\n return data\r\n}"],"file":"getData.js"}
1
+ {"version":3,"sources":["../../source/read/getData.js"],"names":["getData","sheet","options","dimensions","cells","length","leftTop","rightBottom","colsCount","column","rowsCount","row","data","Array","i","j","cell","rowIndex","columnIndex","value","rowMap","onlyTrimAtTheEnd","transformData"],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;;;;;;;;;;;AAEe,SAASA,OAAT,CAAiBC,KAAjB,EAAwBC,OAAxB,EAAiC;AAC9C,MAAQC,UAAR,GAA8BF,KAA9B,CAAQE,UAAR;AAAA,MAAoBC,KAApB,GAA8BH,KAA9B,CAAoBG,KAApB,CAD8C,CAG9C;;AACA,MAAIA,KAAK,CAACC,MAAN,KAAiB,CAArB,EAAwB;AACtB,WAAO,EAAP;AACD;;AAED,mCAA+BF,UAA/B;AAAA,MAAOG,OAAP;AAAA,MAAgBC,WAAhB,kBAR8C,CAU9C;AACA;AACA;AACA;;;AAEA,MAAMC,SAAS,GAAGD,WAAW,CAACE,MAA9B;AACA,MAAMC,SAAS,GAAGH,WAAW,CAACI,GAA9B,CAhB8C,CAkB9C;;AACA,MAAIC,IAAI,GAAG,IAAIC,KAAJ,CAAUH,SAAV,CAAX;AACA,MAAII,CAAC,GAAG,CAAR;;AACA,SAAOA,CAAC,GAAGJ,SAAX,EAAsB;AACpBE,IAAAA,IAAI,CAACE,CAAD,CAAJ,GAAU,IAAID,KAAJ,CAAUL,SAAV,CAAV;AACA,QAAIO,CAAC,GAAG,CAAR;;AACA,WAAOA,CAAC,GAAGP,SAAX,EAAsB;AACpBI,MAAAA,IAAI,CAACE,CAAD,CAAJ,CAAQC,CAAR,IAAa,IAAb;AACAA,MAAAA,CAAC;AACF;;AACDD,IAAAA,CAAC;AACF,GA7B6C,CA+B9C;AACA;AACA;AACA;;;AACA,uDAAmBV,KAAnB,wCAA0B;AAAA,QAAfY,IAAe;AACxB;AACA;AACA;AACA;AACA,QAAMC,QAAQ,GAAGD,IAAI,CAACL,GAAL,GAAW,CAA5B;AACA,QAAMO,WAAW,GAAGF,IAAI,CAACP,MAAL,GAAc,CAAlC;AACAG,IAAAA,IAAI,CAACK,QAAD,CAAJ,CAAeC,WAAf,IAA8BF,IAAI,CAACG,KAAnC;AACD,GA3C6C,CA6C9C;;;AACA,MAAQC,MAAR,GAAmBlB,OAAnB,CAAQkB,MAAR;;AACA,MAAIA,MAAJ,EAAY;AACV,QAAIN,GAAC,GAAG,CAAR;;AACA,WAAOA,GAAC,GAAGF,IAAI,CAACP,MAAhB,EAAwB;AACtBe,MAAAA,MAAM,CAACN,GAAD,CAAN,GAAYA,GAAZ;AACAA,MAAAA,GAAC;AACF;AACF,GArD6C,CAuD9C;;;AACAF,EAAAA,IAAI,GAAG,+BACL,kCAAiBA,IAAjB,EAAuB;AAAES,IAAAA,gBAAgB,EAAE;AAApB,GAAvB,CADK,EAEL;AAAEA,IAAAA,gBAAgB,EAAE,IAApB;AAA0BD,IAAAA,MAAM,EAANA;AAA1B,GAFK,CAAP,CAxD8C,CA6D9C;;AACA,MAAIlB,OAAO,CAACoB,aAAZ,EAA2B;AACzBV,IAAAA,IAAI,GAAGV,OAAO,CAACoB,aAAR,CAAsBV,IAAtB,CAAP,CADyB,CAEzB;AACA;AACA;AACA;AACA;AACD;;AAED,SAAOA,IAAP;AACD","sourcesContent":["import dropEmptyRows from './dropEmptyRows'\r\nimport dropEmptyColumns from './dropEmptyColumns'\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 structure.\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 data[rowIndex][columnIndex] = cell.value\r\n }\r\n\r\n // Fill in the row map.\r\n const { rowMap } = options\r\n if (rowMap) {\r\n let i = 0\r\n while (i < data.length) {\r\n rowMap[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, rowMap }\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), { rowMap })\r\n // }\r\n // })\r\n }\r\n\r\n return data\r\n}"],"file":"getData.js"}
@@ -21,6 +21,8 @@ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "und
21
21
 
22
22
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
23
23
 
24
+ // `dimensions` defines the spreadsheet area containing all non-empty cells.
25
+ // https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sheetdimension?view=openxml-2.8.1
24
26
  function parseDimensions(sheet) {
25
27
  var dimensions = (0, _xlsx.getDimensions)(sheet);
26
28
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../source/read/parseDimensions.js"],"names":["parseDimensions","sheet","dimensions","split","map","parseCellCoordinates","row","column","length"],"mappings":";;;;;;;AAAA;;AAIA;;;;;;;;;;;;;;AAIe,SAASA,eAAT,CAAyBC,KAAzB,EAAgC;AAC7C,MAAIC,UAAU,GAAG,yBAAcD,KAAd,CAAjB;;AACA,MAAIC,UAAJ,EAAgB;AACdA,IAAAA,UAAU,GAAGA,UAAU,CAACC,KAAX,CAAiB,GAAjB,EAAsBC,GAAtB,CAA0BC,iCAA1B,EAAgDD,GAAhD,CAAoD;AAAA;AAAA,UAAEE,GAAF;AAAA,UAAOC,MAAP;;AAAA,aAAoB;AACnFD,QAAAA,GAAG,EAAHA,GADmF;AAEnFC,QAAAA,MAAM,EAANA;AAFmF,OAApB;AAAA,KAApD,CAAb,CADc,CAKd;AACA;;AACA,QAAIL,UAAU,CAACM,MAAX,KAAsB,CAA1B,EAA6B;AAC3BN,MAAAA,UAAU,GAAG,CAACA,UAAU,CAAC,CAAD,CAAX,EAAgBA,UAAU,CAAC,CAAD,CAA1B,CAAb;AACD;;AACD,WAAOA,UAAP;AACD;AACF","sourcesContent":["import {\r\n parseCellCoordinates\r\n} from './coordinates'\r\n\r\nimport {\r\n getDimensions\r\n} from '../xml/xlsx'\r\n\r\nexport default function parseDimensions(sheet) {\r\n let dimensions = getDimensions(sheet)\r\n if (dimensions) {\r\n dimensions = dimensions.split(':').map(parseCellCoordinates).map(([row, column]) => ({\r\n row,\r\n column\r\n }))\r\n // When there's only a single cell on a sheet\r\n // there can sometimes be just \"A1\" for the dimensions string.\r\n if (dimensions.length === 1) {\r\n dimensions = [dimensions[0], dimensions[0]]\r\n }\r\n return dimensions\r\n }\r\n}\r\n\r\n"],"file":"parseDimensions.js"}
1
+ {"version":3,"sources":["../../source/read/parseDimensions.js"],"names":["parseDimensions","sheet","dimensions","split","map","parseCellCoordinates","row","column","length"],"mappings":";;;;;;;AAAA;;AAIA;;;;;;;;;;;;;;AAIA;AACA;AACe,SAASA,eAAT,CAAyBC,KAAzB,EAAgC;AAC7C,MAAIC,UAAU,GAAG,yBAAcD,KAAd,CAAjB;;AACA,MAAIC,UAAJ,EAAgB;AACdA,IAAAA,UAAU,GAAGA,UAAU,CAACC,KAAX,CAAiB,GAAjB,EAAsBC,GAAtB,CAA0BC,iCAA1B,EAAgDD,GAAhD,CAAoD;AAAA;AAAA,UAAEE,GAAF;AAAA,UAAOC,MAAP;;AAAA,aAAoB;AACnFD,QAAAA,GAAG,EAAHA,GADmF;AAEnFC,QAAAA,MAAM,EAANA;AAFmF,OAApB;AAAA,KAApD,CAAb,CADc,CAKd;AACA;;AACA,QAAIL,UAAU,CAACM,MAAX,KAAsB,CAA1B,EAA6B;AAC3BN,MAAAA,UAAU,GAAG,CAACA,UAAU,CAAC,CAAD,CAAX,EAAgBA,UAAU,CAAC,CAAD,CAA1B,CAAb;AACD;;AACD,WAAOA,UAAP;AACD;AACF","sourcesContent":["import {\r\n parseCellCoordinates\r\n} from './coordinates'\r\n\r\nimport {\r\n getDimensions\r\n} from '../xml/xlsx'\r\n\r\n// `dimensions` defines the spreadsheet area containing all non-empty cells.\r\n// https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sheetdimension?view=openxml-2.8.1\r\nexport default function parseDimensions(sheet) {\r\n let dimensions = getDimensions(sheet)\r\n if (dimensions) {\r\n dimensions = dimensions.split(':').map(parseCellCoordinates).map(([row, column]) => ({\r\n row,\r\n column\r\n }))\r\n // When there's only a single cell on a sheet\r\n // there can sometimes be just \"A1\" for the dimensions string.\r\n if (dimensions.length === 1) {\r\n dimensions = [dimensions[0], dimensions[0]]\r\n }\r\n return dimensions\r\n }\r\n}\r\n\r\n"],"file":"parseDimensions.js"}
@@ -15,7 +15,9 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
15
15
 
16
16
  function parseSheet(content, xml, values, styles, properties, options) {
17
17
  var sheet = xml.createDocument(content);
18
- var cells = (0, _parseCells["default"])(sheet, xml, values, styles, properties, options);
18
+ var cells = (0, _parseCells["default"])(sheet, xml, values, styles, properties, options); // `dimensions` defines the spreadsheet area containing all non-empty cells.
19
+ // https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sheetdimension?view=openxml-2.8.1
20
+
19
21
  var dimensions = (0, _parseDimensions["default"])(sheet) || (0, _coordinates.calculateDimensions)(cells);
20
22
  return {
21
23
  cells: cells,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../source/read/parseSheet.js"],"names":["parseSheet","content","xml","values","styles","properties","options","sheet","createDocument","cells","dimensions"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;;;AAEe,SAASA,UAAT,CAAoBC,OAApB,EAA6BC,GAA7B,EAAkCC,MAAlC,EAA0CC,MAA1C,EAAkDC,UAAlD,EAA8DC,OAA9D,EAAuE;AACpF,MAAMC,KAAK,GAAGL,GAAG,CAACM,cAAJ,CAAmBP,OAAnB,CAAd;AAEA,MAAMQ,KAAK,GAAG,4BAAWF,KAAX,EAAkBL,GAAlB,EAAuBC,MAAvB,EAA+BC,MAA/B,EAAuCC,UAAvC,EAAmDC,OAAnD,CAAd;AACA,MAAMI,UAAU,GAAG,iCAAgBH,KAAhB,KAA0B,sCAAoBE,KAApB,CAA7C;AAEA,SAAO;AAAEA,IAAAA,KAAK,EAALA,KAAF;AAASC,IAAAA,UAAU,EAAVA;AAAT,GAAP;AACD","sourcesContent":["import parseCells from './parseCells'\r\nimport parseDimensions from './parseDimensions'\r\n\r\nimport { calculateDimensions } from './coordinates'\r\n\r\nexport default function parseSheet(content, xml, values, styles, properties, options) {\r\n const sheet = xml.createDocument(content)\r\n\r\n const cells = parseCells(sheet, xml, values, styles, properties, options)\r\n const dimensions = parseDimensions(sheet) || calculateDimensions(cells)\r\n\r\n return { cells, dimensions }\r\n}"],"file":"parseSheet.js"}
1
+ {"version":3,"sources":["../../source/read/parseSheet.js"],"names":["parseSheet","content","xml","values","styles","properties","options","sheet","createDocument","cells","dimensions"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;;;AAEe,SAASA,UAAT,CAAoBC,OAApB,EAA6BC,GAA7B,EAAkCC,MAAlC,EAA0CC,MAA1C,EAAkDC,UAAlD,EAA8DC,OAA9D,EAAuE;AACpF,MAAMC,KAAK,GAAGL,GAAG,CAACM,cAAJ,CAAmBP,OAAnB,CAAd;AAEA,MAAMQ,KAAK,GAAG,4BAAWF,KAAX,EAAkBL,GAAlB,EAAuBC,MAAvB,EAA+BC,MAA/B,EAAuCC,UAAvC,EAAmDC,OAAnD,CAAd,CAHoF,CAKpF;AACA;;AACA,MAAMI,UAAU,GAAG,iCAAgBH,KAAhB,KAA0B,sCAAoBE,KAApB,CAA7C;AAEA,SAAO;AAAEA,IAAAA,KAAK,EAALA,KAAF;AAASC,IAAAA,UAAU,EAAVA;AAAT,GAAP;AACD","sourcesContent":["import parseCells from './parseCells'\r\nimport parseDimensions from './parseDimensions'\r\n\r\nimport { calculateDimensions } from './coordinates'\r\n\r\nexport default function parseSheet(content, xml, values, styles, properties, options) {\r\n const sheet = xml.createDocument(content)\r\n\r\n const cells = parseCells(sheet, xml, values, styles, properties, options)\r\n\r\n // `dimensions` defines the spreadsheet area containing all non-empty cells.\r\n // https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sheetdimension?view=openxml-2.8.1\r\n const dimensions = parseDimensions(sheet) || calculateDimensions(cells)\r\n\r\n return { cells, dimensions }\r\n}"],"file":"parseSheet.js"}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports["default"] = readXlsxFile;
7
7
 
8
- var _xmlNode = _interopRequireDefault(require("../xml/xmlNode"));
8
+ var _xml = _interopRequireDefault(require("../xml/xml"));
9
9
 
10
10
  var _unpackXlsxFileNode = _interopRequireDefault(require("./unpackXlsxFileNode"));
11
11
 
@@ -23,7 +23,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
23
23
  function readXlsxFile(input) {
24
24
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
25
25
  return (0, _unpackXlsxFileNode["default"])(input).then(function (entries) {
26
- return (0, _readXlsxFileContents["default"])(entries, _xmlNode["default"], options);
26
+ return (0, _readXlsxFileContents["default"])(entries, _xml["default"], options);
27
27
  });
28
28
  }
29
29
  //# sourceMappingURL=readXlsxFileNode.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../source/read/readXlsxFileNode.js"],"names":["readXlsxFile","input","options","then","entries","xml"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,YAAT,CAAsBC,KAAtB,EAA2C;AAAA,MAAdC,OAAc,uEAAJ,EAAI;AACzD,SAAO,oCAAeD,KAAf,EACLE,IADK,CACA,UAACC,OAAD;AAAA,WAAa,sCAAqBA,OAArB,EAA8BC,mBAA9B,EAAmCH,OAAnC,CAAb;AAAA,GADA,CAAP;AAEA","sourcesContent":["import xml from '../xml/xmlNode'\r\n\r\nimport unpackXlsxFile from './unpackXlsxFileNode'\r\nimport readXlsxFileContents from './readXlsxFileContents'\r\n\r\n/**\r\n * Reads XLSX file into a 2D array of cells in a browser.\r\n * @param {(string|Stream|Buffer)} input - A Node.js readable stream or a `Buffer` or a path to a file.\r\n * @param {object?} options\r\n * @param {(number|string)?} options.sheet - Excel document sheet to read. Defaults to `1`. Will only read this sheet and skip others.\r\n * @return {Promise} Resolves to a 2D array of cells: an array of rows, each row being an array of cells.\r\n */\r\nexport default function readXlsxFile(input, options = {}) {\r\n\treturn unpackXlsxFile(input)\r\n\t\t.then((entries) => readXlsxFileContents(entries, xml, options))\r\n}"],"file":"readXlsxFileNode.js"}
1
+ {"version":3,"sources":["../../source/read/readXlsxFileNode.js"],"names":["readXlsxFile","input","options","then","entries","xml"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,YAAT,CAAsBC,KAAtB,EAA2C;AAAA,MAAdC,OAAc,uEAAJ,EAAI;AACzD,SAAO,oCAAeD,KAAf,EACLE,IADK,CACA,UAACC,OAAD;AAAA,WAAa,sCAAqBA,OAArB,EAA8BC,eAA9B,EAAmCH,OAAnC,CAAb;AAAA,GADA,CAAP;AAEA","sourcesContent":["import xml from '../xml/xml'\r\n\r\nimport unpackXlsxFile from './unpackXlsxFileNode'\r\nimport readXlsxFileContents from './readXlsxFileContents'\r\n\r\n/**\r\n * Reads XLSX file into a 2D array of cells in a browser.\r\n * @param {(string|Stream|Buffer)} input - A Node.js readable stream or a `Buffer` or a path to a file.\r\n * @param {object?} options\r\n * @param {(number|string)?} options.sheet - Excel document sheet to read. Defaults to `1`. Will only read this sheet and skip others.\r\n * @return {Promise} Resolves to a 2D array of cells: an array of rows, each row being an array of cells.\r\n */\r\nexport default function readXlsxFile(input, options = {}) {\r\n\treturn unpackXlsxFile(input)\r\n\t\t.then((entries) => readXlsxFileContents(entries, xml, options))\r\n}"],"file":"readXlsxFileNode.js"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = readXlsxFile;
7
+
8
+ var _xml = _interopRequireDefault(require("../xml/xml"));
9
+
10
+ var _unpackXlsxFileBrowser = _interopRequireDefault(require("./unpackXlsxFileBrowser"));
11
+
12
+ var _readXlsxFileContents = _interopRequireDefault(require("./readXlsxFileContents"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
+
16
+ /**
17
+ * Reads XLSX file into a 2D array of cells in a web worker.
18
+ * @param {file} file - The file.
19
+ * @param {object?} options
20
+ * @param {(number|string)?} options.sheet - Excel document sheet to read. Defaults to `1`. Will only read this sheet and skip others.
21
+ * @return {Promise} Resolves to a 2D array of cells: an array of rows, each row being an array of cells.
22
+ */
23
+ function readXlsxFile(file) {
24
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
25
+ return (0, _unpackXlsxFileBrowser["default"])(file).then(function (entries) {
26
+ return (0, _readXlsxFileContents["default"])(entries, _xml["default"], options);
27
+ });
28
+ }
29
+ //# sourceMappingURL=readXlsxFileWebWorker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../source/read/readXlsxFileWebWorker.js"],"names":["readXlsxFile","file","options","then","entries","xml"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,YAAT,CAAsBC,IAAtB,EAA0C;AAAA,MAAdC,OAAc,uEAAJ,EAAI;AACxD,SAAO,uCAAeD,IAAf,EACLE,IADK,CACA,UAACC,OAAD;AAAA,WAAa,sCAAqBA,OAArB,EAA8BC,eAA9B,EAAmCH,OAAnC,CAAb;AAAA,GADA,CAAP;AAEA","sourcesContent":["import xml from '../xml/xml'\r\n\r\nimport unpackXlsxFile from './unpackXlsxFileBrowser'\r\nimport readXlsxFileContents from './readXlsxFileContents'\r\n\r\n/**\r\n * Reads XLSX file into a 2D array of cells in a web worker.\r\n * @param {file} file - The file.\r\n * @param {object?} options\r\n * @param {(number|string)?} options.sheet - Excel document sheet to read. Defaults to `1`. Will only read this sheet and skip others.\r\n * @return {Promise} Resolves to a 2D array of cells: an array of rows, each row being an array of cells.\r\n */\r\nexport default function readXlsxFile(file, options = {}) {\r\n\treturn unpackXlsxFile(file)\r\n\t\t.then((entries) => readXlsxFileContents(entries, xml, options))\r\n}"],"file":"readXlsxFileWebWorker.js"}
@@ -15,4 +15,4 @@ var _default = {
15
15
  }
16
16
  };
17
17
  exports["default"] = _default;
18
- //# sourceMappingURL=xmlNode.js.map
18
+ //# sourceMappingURL=xml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../source/xml/xml.js"],"names":["createDocument","content","XMLDOM","DOMParser","parseFromString"],"mappings":";;;;;;;AAAA;;;;eAEe;AACdA,EAAAA,cADc,0BACCC,OADD,EACU;AACvB,WAAO,IAAIC,mBAAOC,SAAX,GAAuBC,eAAvB,CAAuCH,OAAvC,CAAP;AACA;AAHa,C","sourcesContent":["import XMLDOM from '@xmldom/xmldom'\r\n\r\nexport default {\r\n\tcreateDocument(content) {\r\n\t\treturn new XMLDOM.DOMParser().parseFromString(content)\r\n\t}\r\n}"],"file":"xml.js"}
@@ -22,7 +22,8 @@ export function calculateDimensions(cells) {
22
22
  row: maxRow,
23
23
  column: maxCol
24
24
  }];
25
- }
25
+ } // Converts a letter coordinate to a digit coordinate.
26
+ // Examples: "A" -> 1, "B" -> 2, "Z" -> 26, "AA" -> 27, etc.
26
27
 
27
28
  function columnLettersToNumber(columnLetters) {
28
29
  // `for ... of ...` would require Babel polyfill for iterating a string.
@@ -39,7 +40,7 @@ function columnLettersToNumber(columnLetters) {
39
40
  }
40
41
 
41
42
  export function parseCellCoordinates(coords) {
42
- // Examples: "AA2091", "R988", "B1"
43
+ // Coordinate examples: "AA2091", "R988", "B1".
43
44
  coords = coords.split(/(\d+)/);
44
45
  return [// Row.
45
46
  parseInt(coords[1]), // Column.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../source/read/coordinates.js"],"names":["LETTERS","calculateDimensions","cells","comparator","a","b","allRows","map","cell","row","sort","allCols","column","minRow","maxRow","length","minCol","maxCol","columnLettersToNumber","columnLetters","n","i","indexOf","parseCellCoordinates","coords","split","parseInt","trim"],"mappings":"AAAA;AACA,IAAMA,OAAO,GAAG,CAAC,EAAD,EAAK,GAAL,EAAU,GAAV,EAAe,GAAf,EAAoB,GAApB,EAAyB,GAAzB,EAA8B,GAA9B,EAAmC,GAAnC,EAAwC,GAAxC,EAA6C,GAA7C,EAAkD,GAAlD,EAAuD,GAAvD,EAA4D,GAA5D,EAAiE,GAAjE,EAAsE,GAAtE,EAA2E,GAA3E,EAAgF,GAAhF,EAAqF,GAArF,EAA0F,GAA1F,EAA+F,GAA/F,EAAoG,GAApG,EAAyG,GAAzG,EAA8G,GAA9G,EAAmH,GAAnH,EAAwH,GAAxH,EAA6H,GAA7H,EAAkI,GAAlI,CAAhB;AAEA,OAAO,SAASC,mBAAT,CAA8BC,KAA9B,EAAqC;AAC1C,MAAMC,UAAU,GAAG,SAAbA,UAAa,CAACC,CAAD,EAAIC,CAAJ;AAAA,WAAUD,CAAC,GAAGC,CAAd;AAAA,GAAnB;;AACA,MAAMC,OAAO,GAAGJ,KAAK,CAACK,GAAN,CAAU,UAAAC,IAAI;AAAA,WAAIA,IAAI,CAACC,GAAT;AAAA,GAAd,EAA4BC,IAA5B,CAAiCP,UAAjC,CAAhB;AACA,MAAMQ,OAAO,GAAGT,KAAK,CAACK,GAAN,CAAU,UAAAC,IAAI;AAAA,WAAIA,IAAI,CAACI,MAAT;AAAA,GAAd,EAA+BF,IAA/B,CAAoCP,UAApC,CAAhB;AACA,MAAMU,MAAM,GAAGP,OAAO,CAAC,CAAD,CAAtB;AACA,MAAMQ,MAAM,GAAGR,OAAO,CAACA,OAAO,CAACS,MAAR,GAAiB,CAAlB,CAAtB;AACA,MAAMC,MAAM,GAAGL,OAAO,CAAC,CAAD,CAAtB;AACA,MAAMM,MAAM,GAAGN,OAAO,CAACA,OAAO,CAACI,MAAR,GAAiB,CAAlB,CAAtB;AAEA,SAAO,CACL;AAAEN,IAAAA,GAAG,EAAEI,MAAP;AAAeD,IAAAA,MAAM,EAAEI;AAAvB,GADK,EAEL;AAAEP,IAAAA,GAAG,EAAEK,MAAP;AAAeF,IAAAA,MAAM,EAAEK;AAAvB,GAFK,CAAP;AAID;;AAED,SAASC,qBAAT,CAA+BC,aAA/B,EAA8C;AAC5C;AACA,MAAIC,CAAC,GAAG,CAAR;AACA,MAAIC,CAAC,GAAG,CAAR;;AACA,SAAOA,CAAC,GAAGF,aAAa,CAACJ,MAAzB,EAAiC;AAC/BK,IAAAA,CAAC,IAAI,EAAL;AACAA,IAAAA,CAAC,IAAIpB,OAAO,CAACsB,OAAR,CAAgBH,aAAa,CAACE,CAAD,CAA7B,CAAL;AACAA,IAAAA,CAAC;AACF;;AACD,SAAOD,CAAP;AACD;;AAED,OAAO,SAASG,oBAAT,CAA8BC,MAA9B,EAAsC;AAC3C;AACAA,EAAAA,MAAM,GAAGA,MAAM,CAACC,KAAP,CAAa,OAAb,CAAT;AACA,SAAO,CACL;AACAC,EAAAA,QAAQ,CAACF,MAAM,CAAC,CAAD,CAAP,CAFH,EAGL;AACAN,EAAAA,qBAAqB,CAACM,MAAM,CAAC,CAAD,CAAN,CAAUG,IAAV,EAAD,CAJhB,CAAP;AAMD","sourcesContent":["// Maps \"A1\"-like coordinates to `{ row, column }` numeric coordinates.\r\nconst LETTERS = [\"\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\"]\r\n\r\nexport function calculateDimensions (cells) {\r\n const comparator = (a, b) => a - b\r\n const allRows = cells.map(cell => cell.row).sort(comparator)\r\n const allCols = cells.map(cell => cell.column).sort(comparator)\r\n const minRow = allRows[0]\r\n const maxRow = allRows[allRows.length - 1]\r\n const minCol = allCols[0]\r\n const maxCol = allCols[allCols.length - 1]\r\n\r\n return [\r\n { row: minRow, column: minCol },\r\n { row: maxRow, column: maxCol }\r\n ]\r\n}\r\n\r\nfunction columnLettersToNumber(columnLetters) {\r\n // `for ... of ...` would require Babel polyfill for iterating a string.\r\n let n = 0\r\n let i = 0\r\n while (i < columnLetters.length) {\r\n n *= 26\r\n n += LETTERS.indexOf(columnLetters[i])\r\n i++\r\n }\r\n return n\r\n}\r\n\r\nexport function parseCellCoordinates(coords) {\r\n // Examples: \"AA2091\", \"R988\", \"B1\"\r\n coords = coords.split(/(\\d+)/)\r\n return [\r\n // Row.\r\n parseInt(coords[1]),\r\n // Column.\r\n columnLettersToNumber(coords[0].trim())\r\n ]\r\n}"],"file":"coordinates.js"}
1
+ {"version":3,"sources":["../../source/read/coordinates.js"],"names":["LETTERS","calculateDimensions","cells","comparator","a","b","allRows","map","cell","row","sort","allCols","column","minRow","maxRow","length","minCol","maxCol","columnLettersToNumber","columnLetters","n","i","indexOf","parseCellCoordinates","coords","split","parseInt","trim"],"mappings":"AAAA;AACA,IAAMA,OAAO,GAAG,CAAC,EAAD,EAAK,GAAL,EAAU,GAAV,EAAe,GAAf,EAAoB,GAApB,EAAyB,GAAzB,EAA8B,GAA9B,EAAmC,GAAnC,EAAwC,GAAxC,EAA6C,GAA7C,EAAkD,GAAlD,EAAuD,GAAvD,EAA4D,GAA5D,EAAiE,GAAjE,EAAsE,GAAtE,EAA2E,GAA3E,EAAgF,GAAhF,EAAqF,GAArF,EAA0F,GAA1F,EAA+F,GAA/F,EAAoG,GAApG,EAAyG,GAAzG,EAA8G,GAA9G,EAAmH,GAAnH,EAAwH,GAAxH,EAA6H,GAA7H,EAAkI,GAAlI,CAAhB;AAEA,OAAO,SAASC,mBAAT,CAA8BC,KAA9B,EAAqC;AAC1C,MAAMC,UAAU,GAAG,SAAbA,UAAa,CAACC,CAAD,EAAIC,CAAJ;AAAA,WAAUD,CAAC,GAAGC,CAAd;AAAA,GAAnB;;AACA,MAAMC,OAAO,GAAGJ,KAAK,CAACK,GAAN,CAAU,UAAAC,IAAI;AAAA,WAAIA,IAAI,CAACC,GAAT;AAAA,GAAd,EAA4BC,IAA5B,CAAiCP,UAAjC,CAAhB;AACA,MAAMQ,OAAO,GAAGT,KAAK,CAACK,GAAN,CAAU,UAAAC,IAAI;AAAA,WAAIA,IAAI,CAACI,MAAT;AAAA,GAAd,EAA+BF,IAA/B,CAAoCP,UAApC,CAAhB;AACA,MAAMU,MAAM,GAAGP,OAAO,CAAC,CAAD,CAAtB;AACA,MAAMQ,MAAM,GAAGR,OAAO,CAACA,OAAO,CAACS,MAAR,GAAiB,CAAlB,CAAtB;AACA,MAAMC,MAAM,GAAGL,OAAO,CAAC,CAAD,CAAtB;AACA,MAAMM,MAAM,GAAGN,OAAO,CAACA,OAAO,CAACI,MAAR,GAAiB,CAAlB,CAAtB;AAEA,SAAO,CACL;AAAEN,IAAAA,GAAG,EAAEI,MAAP;AAAeD,IAAAA,MAAM,EAAEI;AAAvB,GADK,EAEL;AAAEP,IAAAA,GAAG,EAAEK,MAAP;AAAeF,IAAAA,MAAM,EAAEK;AAAvB,GAFK,CAAP;AAID,C,CAED;AACA;;AACA,SAASC,qBAAT,CAA+BC,aAA/B,EAA8C;AAC5C;AACA,MAAIC,CAAC,GAAG,CAAR;AACA,MAAIC,CAAC,GAAG,CAAR;;AACA,SAAOA,CAAC,GAAGF,aAAa,CAACJ,MAAzB,EAAiC;AAC/BK,IAAAA,CAAC,IAAI,EAAL;AACAA,IAAAA,CAAC,IAAIpB,OAAO,CAACsB,OAAR,CAAgBH,aAAa,CAACE,CAAD,CAA7B,CAAL;AACAA,IAAAA,CAAC;AACF;;AACD,SAAOD,CAAP;AACD;;AAED,OAAO,SAASG,oBAAT,CAA8BC,MAA9B,EAAsC;AAC3C;AACAA,EAAAA,MAAM,GAAGA,MAAM,CAACC,KAAP,CAAa,OAAb,CAAT;AACA,SAAO,CACL;AACAC,EAAAA,QAAQ,CAACF,MAAM,CAAC,CAAD,CAAP,CAFH,EAGL;AACAN,EAAAA,qBAAqB,CAACM,MAAM,CAAC,CAAD,CAAN,CAAUG,IAAV,EAAD,CAJhB,CAAP;AAMD","sourcesContent":["// Maps \"A1\"-like coordinates to `{ row, column }` numeric coordinates.\r\nconst LETTERS = [\"\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\"]\r\n\r\nexport function calculateDimensions (cells) {\r\n const comparator = (a, b) => a - b\r\n const allRows = cells.map(cell => cell.row).sort(comparator)\r\n const allCols = cells.map(cell => cell.column).sort(comparator)\r\n const minRow = allRows[0]\r\n const maxRow = allRows[allRows.length - 1]\r\n const minCol = allCols[0]\r\n const maxCol = allCols[allCols.length - 1]\r\n\r\n return [\r\n { row: minRow, column: minCol },\r\n { row: maxRow, column: maxCol }\r\n ]\r\n}\r\n\r\n// Converts a letter coordinate to a digit coordinate.\r\n// Examples: \"A\" -> 1, \"B\" -> 2, \"Z\" -> 26, \"AA\" -> 27, etc.\r\nfunction columnLettersToNumber(columnLetters) {\r\n // `for ... of ...` would require Babel polyfill for iterating a string.\r\n let n = 0\r\n let i = 0\r\n while (i < columnLetters.length) {\r\n n *= 26\r\n n += LETTERS.indexOf(columnLetters[i])\r\n i++\r\n }\r\n return n\r\n}\r\n\r\nexport function parseCellCoordinates(coords) {\r\n // Coordinate examples: \"AA2091\", \"R988\", \"B1\".\r\n coords = coords.split(/(\\d+)/)\r\n return [\r\n // Row.\r\n parseInt(coords[1]),\r\n // Column.\r\n columnLettersToNumber(coords[0].trim())\r\n ]\r\n}"],"file":"coordinates.js"}
@@ -24,10 +24,14 @@ export default function getData(sheet, options) {
24
24
 
25
25
  var _dimensions = _slicedToArray(dimensions, 2),
26
26
  leftTop = _dimensions[0],
27
- rightBottom = _dimensions[1];
27
+ rightBottom = _dimensions[1]; // Don't discard empty rows or columns at the start.
28
+ // https://github.com/catamphetamine/read-excel-file/issues/102
29
+ // const colsCount = (rightBottom.column - leftTop.column) + 1
30
+ // const rowsCount = (rightBottom.row - leftTop.row) + 1
28
31
 
29
- var colsCount = rightBottom.column - leftTop.column + 1;
30
- var rowsCount = rightBottom.row - leftTop.row + 1; // Initialize spreadsheet data structure.
32
+
33
+ var colsCount = rightBottom.column;
34
+ var rowsCount = rightBottom.row; // Initialize spreadsheet data structure.
31
35
 
32
36
  var data = new Array(rowsCount);
33
37
  var i = 0;
@@ -50,9 +54,13 @@ export default function getData(sheet, options) {
50
54
 
51
55
  for (var _iterator = _createForOfIteratorHelperLoose(cells), _step; !(_step = _iterator()).done;) {
52
56
  var cell = _step.value;
53
- var row = cell.row - leftTop.row;
54
- var column = cell.column - leftTop.column;
55
- data[row][column] = cell.value;
57
+ // Don't discard empty rows or columns at the start.
58
+ // https://github.com/catamphetamine/read-excel-file/issues/102
59
+ // const rowIndex = cell.row - leftTop.row
60
+ // const columnIndex = cell.column - leftTop.column
61
+ var rowIndex = cell.row - 1;
62
+ var columnIndex = cell.column - 1;
63
+ data[rowIndex][columnIndex] = cell.value;
56
64
  } // Fill in the row map.
57
65
 
58
66
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../source/read/getData.js"],"names":["dropEmptyRows","dropEmptyColumns","getData","sheet","options","dimensions","cells","length","leftTop","rightBottom","colsCount","column","rowsCount","row","data","Array","i","j","cell","value","rowMap","onlyTrimAtTheEnd","transformData"],"mappings":";;;;;;;;;;;;;;AAAA,OAAOA,aAAP,MAA0B,iBAA1B;AACA,OAAOC,gBAAP,MAA6B,oBAA7B;AAEA,eAAe,SAASC,OAAT,CAAiBC,KAAjB,EAAwBC,OAAxB,EAAiC;AAC9C,MAAQC,UAAR,GAA8BF,KAA9B,CAAQE,UAAR;AAAA,MAAoBC,KAApB,GAA8BH,KAA9B,CAAoBG,KAApB,CAD8C,CAG9C;;AACA,MAAIA,KAAK,CAACC,MAAN,KAAiB,CAArB,EAAwB;AACtB,WAAO,EAAP;AACD;;AAED,mCAA+BF,UAA/B;AAAA,MAAOG,OAAP;AAAA,MAAgBC,WAAhB;;AAEA,MAAMC,SAAS,GAAID,WAAW,CAACE,MAAZ,GAAqBH,OAAO,CAACG,MAA9B,GAAwC,CAA1D;AACA,MAAMC,SAAS,GAAIH,WAAW,CAACI,GAAZ,GAAkBL,OAAO,CAACK,GAA3B,GAAkC,CAApD,CAX8C,CAa9C;;AACA,MAAIC,IAAI,GAAG,IAAIC,KAAJ,CAAUH,SAAV,CAAX;AACA,MAAII,CAAC,GAAG,CAAR;;AACA,SAAOA,CAAC,GAAGJ,SAAX,EAAsB;AACpBE,IAAAA,IAAI,CAACE,CAAD,CAAJ,GAAU,IAAID,KAAJ,CAAUL,SAAV,CAAV;AACA,QAAIO,CAAC,GAAG,CAAR;;AACA,WAAOA,CAAC,GAAGP,SAAX,EAAsB;AACpBI,MAAAA,IAAI,CAACE,CAAD,CAAJ,CAAQC,CAAR,IAAa,IAAb;AACAA,MAAAA,CAAC;AACF;;AACDD,IAAAA,CAAC;AACF,GAxB6C,CA0B9C;AACA;AACA;AACA;;;AACA,uDAAmBV,KAAnB,wCAA0B;AAAA,QAAfY,IAAe;AACxB,QAAML,GAAG,GAAGK,IAAI,CAACL,GAAL,GAAWL,OAAO,CAACK,GAA/B;AACA,QAAMF,MAAM,GAAGO,IAAI,CAACP,MAAL,GAAcH,OAAO,CAACG,MAArC;AACAG,IAAAA,IAAI,CAACD,GAAD,CAAJ,CAAUF,MAAV,IAAoBO,IAAI,CAACC,KAAzB;AACD,GAlC6C,CAoC9C;;;AACA,MAAQC,MAAR,GAAmBhB,OAAnB,CAAQgB,MAAR;;AACA,MAAIA,MAAJ,EAAY;AACV,QAAIJ,GAAC,GAAG,CAAR;;AACA,WAAOA,GAAC,GAAGF,IAAI,CAACP,MAAhB,EAAwB;AACtBa,MAAAA,MAAM,CAACJ,GAAD,CAAN,GAAYA,GAAZ;AACAA,MAAAA,GAAC;AACF;AACF,GA5C6C,CA8C9C;;;AACAF,EAAAA,IAAI,GAAGd,aAAa,CAClBC,gBAAgB,CAACa,IAAD,EAAO;AAAEO,IAAAA,gBAAgB,EAAE;AAApB,GAAP,CADE,EAElB;AAAEA,IAAAA,gBAAgB,EAAE,IAApB;AAA0BD,IAAAA,MAAM,EAANA;AAA1B,GAFkB,CAApB,CA/C8C,CAoD9C;;AACA,MAAIhB,OAAO,CAACkB,aAAZ,EAA2B;AACzBR,IAAAA,IAAI,GAAGV,OAAO,CAACkB,aAAR,CAAsBR,IAAtB,CAAP,CADyB,CAEzB;AACA;AACA;AACA;AACA;AACD;;AAED,SAAOA,IAAP;AACD","sourcesContent":["import dropEmptyRows from './dropEmptyRows'\r\nimport dropEmptyColumns from './dropEmptyColumns'\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 const colsCount = (rightBottom.column - leftTop.column) + 1\r\n const rowsCount = (rightBottom.row - leftTop.row) + 1\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 structure.\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 const row = cell.row - leftTop.row\r\n const column = cell.column - leftTop.column\r\n data[row][column] = cell.value\r\n }\r\n\r\n // Fill in the row map.\r\n const { rowMap } = options\r\n if (rowMap) {\r\n let i = 0\r\n while (i < data.length) {\r\n rowMap[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, rowMap }\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), { rowMap })\r\n // }\r\n // })\r\n }\r\n\r\n return data\r\n}"],"file":"getData.js"}
1
+ {"version":3,"sources":["../../source/read/getData.js"],"names":["dropEmptyRows","dropEmptyColumns","getData","sheet","options","dimensions","cells","length","leftTop","rightBottom","colsCount","column","rowsCount","row","data","Array","i","j","cell","rowIndex","columnIndex","value","rowMap","onlyTrimAtTheEnd","transformData"],"mappings":";;;;;;;;;;;;;;AAAA,OAAOA,aAAP,MAA0B,iBAA1B;AACA,OAAOC,gBAAP,MAA6B,oBAA7B;AAEA,eAAe,SAASC,OAAT,CAAiBC,KAAjB,EAAwBC,OAAxB,EAAiC;AAC9C,MAAQC,UAAR,GAA8BF,KAA9B,CAAQE,UAAR;AAAA,MAAoBC,KAApB,GAA8BH,KAA9B,CAAoBG,KAApB,CAD8C,CAG9C;;AACA,MAAIA,KAAK,CAACC,MAAN,KAAiB,CAArB,EAAwB;AACtB,WAAO,EAAP;AACD;;AAED,mCAA+BF,UAA/B;AAAA,MAAOG,OAAP;AAAA,MAAgBC,WAAhB,kBAR8C,CAU9C;AACA;AACA;AACA;;;AAEA,MAAMC,SAAS,GAAGD,WAAW,CAACE,MAA9B;AACA,MAAMC,SAAS,GAAGH,WAAW,CAACI,GAA9B,CAhB8C,CAkB9C;;AACA,MAAIC,IAAI,GAAG,IAAIC,KAAJ,CAAUH,SAAV,CAAX;AACA,MAAII,CAAC,GAAG,CAAR;;AACA,SAAOA,CAAC,GAAGJ,SAAX,EAAsB;AACpBE,IAAAA,IAAI,CAACE,CAAD,CAAJ,GAAU,IAAID,KAAJ,CAAUL,SAAV,CAAV;AACA,QAAIO,CAAC,GAAG,CAAR;;AACA,WAAOA,CAAC,GAAGP,SAAX,EAAsB;AACpBI,MAAAA,IAAI,CAACE,CAAD,CAAJ,CAAQC,CAAR,IAAa,IAAb;AACAA,MAAAA,CAAC;AACF;;AACDD,IAAAA,CAAC;AACF,GA7B6C,CA+B9C;AACA;AACA;AACA;;;AACA,uDAAmBV,KAAnB,wCAA0B;AAAA,QAAfY,IAAe;AACxB;AACA;AACA;AACA;AACA,QAAMC,QAAQ,GAAGD,IAAI,CAACL,GAAL,GAAW,CAA5B;AACA,QAAMO,WAAW,GAAGF,IAAI,CAACP,MAAL,GAAc,CAAlC;AACAG,IAAAA,IAAI,CAACK,QAAD,CAAJ,CAAeC,WAAf,IAA8BF,IAAI,CAACG,KAAnC;AACD,GA3C6C,CA6C9C;;;AACA,MAAQC,MAAR,GAAmBlB,OAAnB,CAAQkB,MAAR;;AACA,MAAIA,MAAJ,EAAY;AACV,QAAIN,GAAC,GAAG,CAAR;;AACA,WAAOA,GAAC,GAAGF,IAAI,CAACP,MAAhB,EAAwB;AACtBe,MAAAA,MAAM,CAACN,GAAD,CAAN,GAAYA,GAAZ;AACAA,MAAAA,GAAC;AACF;AACF,GArD6C,CAuD9C;;;AACAF,EAAAA,IAAI,GAAGd,aAAa,CAClBC,gBAAgB,CAACa,IAAD,EAAO;AAAES,IAAAA,gBAAgB,EAAE;AAApB,GAAP,CADE,EAElB;AAAEA,IAAAA,gBAAgB,EAAE,IAApB;AAA0BD,IAAAA,MAAM,EAANA;AAA1B,GAFkB,CAApB,CAxD8C,CA6D9C;;AACA,MAAIlB,OAAO,CAACoB,aAAZ,EAA2B;AACzBV,IAAAA,IAAI,GAAGV,OAAO,CAACoB,aAAR,CAAsBV,IAAtB,CAAP,CADyB,CAEzB;AACA;AACA;AACA;AACA;AACD;;AAED,SAAOA,IAAP;AACD","sourcesContent":["import dropEmptyRows from './dropEmptyRows'\r\nimport dropEmptyColumns from './dropEmptyColumns'\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 structure.\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 data[rowIndex][columnIndex] = cell.value\r\n }\r\n\r\n // Fill in the row map.\r\n const { rowMap } = options\r\n if (rowMap) {\r\n let i = 0\r\n while (i < data.length) {\r\n rowMap[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, rowMap }\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), { rowMap })\r\n // }\r\n // })\r\n }\r\n\r\n return data\r\n}"],"file":"getData.js"}
@@ -11,7 +11,9 @@ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "und
11
11
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
12
 
13
13
  import { parseCellCoordinates } from './coordinates';
14
- import { getDimensions } from '../xml/xlsx';
14
+ import { getDimensions } from '../xml/xlsx'; // `dimensions` defines the spreadsheet area containing all non-empty cells.
15
+ // https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sheetdimension?view=openxml-2.8.1
16
+
15
17
  export default function parseDimensions(sheet) {
16
18
  var dimensions = getDimensions(sheet);
17
19
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../source/read/parseDimensions.js"],"names":["parseCellCoordinates","getDimensions","parseDimensions","sheet","dimensions","split","map","row","column","length"],"mappings":";;;;;;;;;;;;AAAA,SACEA,oBADF,QAEO,eAFP;AAIA,SACEC,aADF,QAEO,aAFP;AAIA,eAAe,SAASC,eAAT,CAAyBC,KAAzB,EAAgC;AAC7C,MAAIC,UAAU,GAAGH,aAAa,CAACE,KAAD,CAA9B;;AACA,MAAIC,UAAJ,EAAgB;AACdA,IAAAA,UAAU,GAAGA,UAAU,CAACC,KAAX,CAAiB,GAAjB,EAAsBC,GAAtB,CAA0BN,oBAA1B,EAAgDM,GAAhD,CAAoD;AAAA;AAAA,UAAEC,GAAF;AAAA,UAAOC,MAAP;;AAAA,aAAoB;AACnFD,QAAAA,GAAG,EAAHA,GADmF;AAEnFC,QAAAA,MAAM,EAANA;AAFmF,OAApB;AAAA,KAApD,CAAb,CADc,CAKd;AACA;;AACA,QAAIJ,UAAU,CAACK,MAAX,KAAsB,CAA1B,EAA6B;AAC3BL,MAAAA,UAAU,GAAG,CAACA,UAAU,CAAC,CAAD,CAAX,EAAgBA,UAAU,CAAC,CAAD,CAA1B,CAAb;AACD;;AACD,WAAOA,UAAP;AACD;AACF","sourcesContent":["import {\r\n parseCellCoordinates\r\n} from './coordinates'\r\n\r\nimport {\r\n getDimensions\r\n} from '../xml/xlsx'\r\n\r\nexport default function parseDimensions(sheet) {\r\n let dimensions = getDimensions(sheet)\r\n if (dimensions) {\r\n dimensions = dimensions.split(':').map(parseCellCoordinates).map(([row, column]) => ({\r\n row,\r\n column\r\n }))\r\n // When there's only a single cell on a sheet\r\n // there can sometimes be just \"A1\" for the dimensions string.\r\n if (dimensions.length === 1) {\r\n dimensions = [dimensions[0], dimensions[0]]\r\n }\r\n return dimensions\r\n }\r\n}\r\n\r\n"],"file":"parseDimensions.js"}
1
+ {"version":3,"sources":["../../source/read/parseDimensions.js"],"names":["parseCellCoordinates","getDimensions","parseDimensions","sheet","dimensions","split","map","row","column","length"],"mappings":";;;;;;;;;;;;AAAA,SACEA,oBADF,QAEO,eAFP;AAIA,SACEC,aADF,QAEO,aAFP,C,CAIA;AACA;;AACA,eAAe,SAASC,eAAT,CAAyBC,KAAzB,EAAgC;AAC7C,MAAIC,UAAU,GAAGH,aAAa,CAACE,KAAD,CAA9B;;AACA,MAAIC,UAAJ,EAAgB;AACdA,IAAAA,UAAU,GAAGA,UAAU,CAACC,KAAX,CAAiB,GAAjB,EAAsBC,GAAtB,CAA0BN,oBAA1B,EAAgDM,GAAhD,CAAoD;AAAA;AAAA,UAAEC,GAAF;AAAA,UAAOC,MAAP;;AAAA,aAAoB;AACnFD,QAAAA,GAAG,EAAHA,GADmF;AAEnFC,QAAAA,MAAM,EAANA;AAFmF,OAApB;AAAA,KAApD,CAAb,CADc,CAKd;AACA;;AACA,QAAIJ,UAAU,CAACK,MAAX,KAAsB,CAA1B,EAA6B;AAC3BL,MAAAA,UAAU,GAAG,CAACA,UAAU,CAAC,CAAD,CAAX,EAAgBA,UAAU,CAAC,CAAD,CAA1B,CAAb;AACD;;AACD,WAAOA,UAAP;AACD;AACF","sourcesContent":["import {\r\n parseCellCoordinates\r\n} from './coordinates'\r\n\r\nimport {\r\n getDimensions\r\n} from '../xml/xlsx'\r\n\r\n// `dimensions` defines the spreadsheet area containing all non-empty cells.\r\n// https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sheetdimension?view=openxml-2.8.1\r\nexport default function parseDimensions(sheet) {\r\n let dimensions = getDimensions(sheet)\r\n if (dimensions) {\r\n dimensions = dimensions.split(':').map(parseCellCoordinates).map(([row, column]) => ({\r\n row,\r\n column\r\n }))\r\n // When there's only a single cell on a sheet\r\n // there can sometimes be just \"A1\" for the dimensions string.\r\n if (dimensions.length === 1) {\r\n dimensions = [dimensions[0], dimensions[0]]\r\n }\r\n return dimensions\r\n }\r\n}\r\n\r\n"],"file":"parseDimensions.js"}
@@ -3,7 +3,9 @@ import parseDimensions from './parseDimensions';
3
3
  import { calculateDimensions } from './coordinates';
4
4
  export default function parseSheet(content, xml, values, styles, properties, options) {
5
5
  var sheet = xml.createDocument(content);
6
- var cells = parseCells(sheet, xml, values, styles, properties, options);
6
+ var cells = parseCells(sheet, xml, values, styles, properties, options); // `dimensions` defines the spreadsheet area containing all non-empty cells.
7
+ // https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sheetdimension?view=openxml-2.8.1
8
+
7
9
  var dimensions = parseDimensions(sheet) || calculateDimensions(cells);
8
10
  return {
9
11
  cells: cells,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../source/read/parseSheet.js"],"names":["parseCells","parseDimensions","calculateDimensions","parseSheet","content","xml","values","styles","properties","options","sheet","createDocument","cells","dimensions"],"mappings":"AAAA,OAAOA,UAAP,MAAuB,cAAvB;AACA,OAAOC,eAAP,MAA4B,mBAA5B;AAEA,SAASC,mBAAT,QAAoC,eAApC;AAEA,eAAe,SAASC,UAAT,CAAoBC,OAApB,EAA6BC,GAA7B,EAAkCC,MAAlC,EAA0CC,MAA1C,EAAkDC,UAAlD,EAA8DC,OAA9D,EAAuE;AACpF,MAAMC,KAAK,GAAGL,GAAG,CAACM,cAAJ,CAAmBP,OAAnB,CAAd;AAEA,MAAMQ,KAAK,GAAGZ,UAAU,CAACU,KAAD,EAAQL,GAAR,EAAaC,MAAb,EAAqBC,MAArB,EAA6BC,UAA7B,EAAyCC,OAAzC,CAAxB;AACA,MAAMI,UAAU,GAAGZ,eAAe,CAACS,KAAD,CAAf,IAA0BR,mBAAmB,CAACU,KAAD,CAAhE;AAEA,SAAO;AAAEA,IAAAA,KAAK,EAALA,KAAF;AAASC,IAAAA,UAAU,EAAVA;AAAT,GAAP;AACD","sourcesContent":["import parseCells from './parseCells'\r\nimport parseDimensions from './parseDimensions'\r\n\r\nimport { calculateDimensions } from './coordinates'\r\n\r\nexport default function parseSheet(content, xml, values, styles, properties, options) {\r\n const sheet = xml.createDocument(content)\r\n\r\n const cells = parseCells(sheet, xml, values, styles, properties, options)\r\n const dimensions = parseDimensions(sheet) || calculateDimensions(cells)\r\n\r\n return { cells, dimensions }\r\n}"],"file":"parseSheet.js"}
1
+ {"version":3,"sources":["../../source/read/parseSheet.js"],"names":["parseCells","parseDimensions","calculateDimensions","parseSheet","content","xml","values","styles","properties","options","sheet","createDocument","cells","dimensions"],"mappings":"AAAA,OAAOA,UAAP,MAAuB,cAAvB;AACA,OAAOC,eAAP,MAA4B,mBAA5B;AAEA,SAASC,mBAAT,QAAoC,eAApC;AAEA,eAAe,SAASC,UAAT,CAAoBC,OAApB,EAA6BC,GAA7B,EAAkCC,MAAlC,EAA0CC,MAA1C,EAAkDC,UAAlD,EAA8DC,OAA9D,EAAuE;AACpF,MAAMC,KAAK,GAAGL,GAAG,CAACM,cAAJ,CAAmBP,OAAnB,CAAd;AAEA,MAAMQ,KAAK,GAAGZ,UAAU,CAACU,KAAD,EAAQL,GAAR,EAAaC,MAAb,EAAqBC,MAArB,EAA6BC,UAA7B,EAAyCC,OAAzC,CAAxB,CAHoF,CAKpF;AACA;;AACA,MAAMI,UAAU,GAAGZ,eAAe,CAACS,KAAD,CAAf,IAA0BR,mBAAmB,CAACU,KAAD,CAAhE;AAEA,SAAO;AAAEA,IAAAA,KAAK,EAALA,KAAF;AAASC,IAAAA,UAAU,EAAVA;AAAT,GAAP;AACD","sourcesContent":["import parseCells from './parseCells'\r\nimport parseDimensions from './parseDimensions'\r\n\r\nimport { calculateDimensions } from './coordinates'\r\n\r\nexport default function parseSheet(content, xml, values, styles, properties, options) {\r\n const sheet = xml.createDocument(content)\r\n\r\n const cells = parseCells(sheet, xml, values, styles, properties, options)\r\n\r\n // `dimensions` defines the spreadsheet area containing all non-empty cells.\r\n // https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sheetdimension?view=openxml-2.8.1\r\n const dimensions = parseDimensions(sheet) || calculateDimensions(cells)\r\n\r\n return { cells, dimensions }\r\n}"],"file":"parseSheet.js"}
@@ -1,4 +1,4 @@
1
- import xml from '../xml/xmlNode';
1
+ import xml from '../xml/xml';
2
2
  import unpackXlsxFile from './unpackXlsxFileNode';
3
3
  import readXlsxFileContents from './readXlsxFileContents';
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../source/read/readXlsxFileNode.js"],"names":["xml","unpackXlsxFile","readXlsxFileContents","readXlsxFile","input","options","then","entries"],"mappings":"AAAA,OAAOA,GAAP,MAAgB,gBAAhB;AAEA,OAAOC,cAAP,MAA2B,sBAA3B;AACA,OAAOC,oBAAP,MAAiC,wBAAjC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,YAAT,CAAsBC,KAAtB,EAA2C;AAAA,MAAdC,OAAc,uEAAJ,EAAI;AACzD,SAAOJ,cAAc,CAACG,KAAD,CAAd,CACLE,IADK,CACA,UAACC,OAAD;AAAA,WAAaL,oBAAoB,CAACK,OAAD,EAAUP,GAAV,EAAeK,OAAf,CAAjC;AAAA,GADA,CAAP;AAEA","sourcesContent":["import xml from '../xml/xmlNode'\r\n\r\nimport unpackXlsxFile from './unpackXlsxFileNode'\r\nimport readXlsxFileContents from './readXlsxFileContents'\r\n\r\n/**\r\n * Reads XLSX file into a 2D array of cells in a browser.\r\n * @param {(string|Stream|Buffer)} input - A Node.js readable stream or a `Buffer` or a path to a file.\r\n * @param {object?} options\r\n * @param {(number|string)?} options.sheet - Excel document sheet to read. Defaults to `1`. Will only read this sheet and skip others.\r\n * @return {Promise} Resolves to a 2D array of cells: an array of rows, each row being an array of cells.\r\n */\r\nexport default function readXlsxFile(input, options = {}) {\r\n\treturn unpackXlsxFile(input)\r\n\t\t.then((entries) => readXlsxFileContents(entries, xml, options))\r\n}"],"file":"readXlsxFileNode.js"}
1
+ {"version":3,"sources":["../../source/read/readXlsxFileNode.js"],"names":["xml","unpackXlsxFile","readXlsxFileContents","readXlsxFile","input","options","then","entries"],"mappings":"AAAA,OAAOA,GAAP,MAAgB,YAAhB;AAEA,OAAOC,cAAP,MAA2B,sBAA3B;AACA,OAAOC,oBAAP,MAAiC,wBAAjC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,YAAT,CAAsBC,KAAtB,EAA2C;AAAA,MAAdC,OAAc,uEAAJ,EAAI;AACzD,SAAOJ,cAAc,CAACG,KAAD,CAAd,CACLE,IADK,CACA,UAACC,OAAD;AAAA,WAAaL,oBAAoB,CAACK,OAAD,EAAUP,GAAV,EAAeK,OAAf,CAAjC;AAAA,GADA,CAAP;AAEA","sourcesContent":["import xml from '../xml/xml'\r\n\r\nimport unpackXlsxFile from './unpackXlsxFileNode'\r\nimport readXlsxFileContents from './readXlsxFileContents'\r\n\r\n/**\r\n * Reads XLSX file into a 2D array of cells in a browser.\r\n * @param {(string|Stream|Buffer)} input - A Node.js readable stream or a `Buffer` or a path to a file.\r\n * @param {object?} options\r\n * @param {(number|string)?} options.sheet - Excel document sheet to read. Defaults to `1`. Will only read this sheet and skip others.\r\n * @return {Promise} Resolves to a 2D array of cells: an array of rows, each row being an array of cells.\r\n */\r\nexport default function readXlsxFile(input, options = {}) {\r\n\treturn unpackXlsxFile(input)\r\n\t\t.then((entries) => readXlsxFileContents(entries, xml, options))\r\n}"],"file":"readXlsxFileNode.js"}
@@ -0,0 +1,18 @@
1
+ import xml from '../xml/xml';
2
+ import unpackXlsxFile from './unpackXlsxFileBrowser';
3
+ import readXlsxFileContents from './readXlsxFileContents';
4
+ /**
5
+ * Reads XLSX file into a 2D array of cells in a web worker.
6
+ * @param {file} file - The file.
7
+ * @param {object?} options
8
+ * @param {(number|string)?} options.sheet - Excel document sheet to read. Defaults to `1`. Will only read this sheet and skip others.
9
+ * @return {Promise} Resolves to a 2D array of cells: an array of rows, each row being an array of cells.
10
+ */
11
+
12
+ export default function readXlsxFile(file) {
13
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
14
+ return unpackXlsxFile(file).then(function (entries) {
15
+ return readXlsxFileContents(entries, xml, options);
16
+ });
17
+ }
18
+ //# sourceMappingURL=readXlsxFileWebWorker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../source/read/readXlsxFileWebWorker.js"],"names":["xml","unpackXlsxFile","readXlsxFileContents","readXlsxFile","file","options","then","entries"],"mappings":"AAAA,OAAOA,GAAP,MAAgB,YAAhB;AAEA,OAAOC,cAAP,MAA2B,yBAA3B;AACA,OAAOC,oBAAP,MAAiC,wBAAjC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,YAAT,CAAsBC,IAAtB,EAA0C;AAAA,MAAdC,OAAc,uEAAJ,EAAI;AACxD,SAAOJ,cAAc,CAACG,IAAD,CAAd,CACLE,IADK,CACA,UAACC,OAAD;AAAA,WAAaL,oBAAoB,CAACK,OAAD,EAAUP,GAAV,EAAeK,OAAf,CAAjC;AAAA,GADA,CAAP;AAEA","sourcesContent":["import xml from '../xml/xml'\r\n\r\nimport unpackXlsxFile from './unpackXlsxFileBrowser'\r\nimport readXlsxFileContents from './readXlsxFileContents'\r\n\r\n/**\r\n * Reads XLSX file into a 2D array of cells in a web worker.\r\n * @param {file} file - The file.\r\n * @param {object?} options\r\n * @param {(number|string)?} options.sheet - Excel document sheet to read. Defaults to `1`. Will only read this sheet and skip others.\r\n * @return {Promise} Resolves to a 2D array of cells: an array of rows, each row being an array of cells.\r\n */\r\nexport default function readXlsxFile(file, options = {}) {\r\n\treturn unpackXlsxFile(file)\r\n\t\t.then((entries) => readXlsxFileContents(entries, xml, options))\r\n}"],"file":"readXlsxFileWebWorker.js"}
@@ -4,4 +4,4 @@ export default {
4
4
  return new XMLDOM.DOMParser().parseFromString(content);
5
5
  }
6
6
  };
7
- //# sourceMappingURL=xmlNode.js.map
7
+ //# sourceMappingURL=xml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../source/xml/xml.js"],"names":["XMLDOM","createDocument","content","DOMParser","parseFromString"],"mappings":"AAAA,OAAOA,MAAP,MAAmB,gBAAnB;AAEA,eAAe;AACdC,EAAAA,cADc,0BACCC,OADD,EACU;AACvB,WAAO,IAAIF,MAAM,CAACG,SAAX,GAAuBC,eAAvB,CAAuCF,OAAvC,CAAP;AACA;AAHa,CAAf","sourcesContent":["import XMLDOM from '@xmldom/xmldom'\r\n\r\nexport default {\r\n\tcreateDocument(content) {\r\n\t\treturn new XMLDOM.DOMParser().parseFromString(content)\r\n\t}\r\n}"],"file":"xml.js"}
package/node/package.json CHANGED
@@ -4,6 +4,6 @@
4
4
  "version": "1.0.0",
5
5
  "main": "index.commonjs.js",
6
6
  "module": "index.js",
7
- "types.test": "./index.d.ts.test",
7
+ "types": "./index.d.ts",
8
8
  "sideEffects": false
9
9
  }
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "read-excel-file",
3
- "version": "5.2.21",
3
+ "version": "5.2.25",
4
4
  "description": "Read small to medium `*.xlsx` files in a browser or Node.js. Parse to JSON with a strict schema.",
5
5
  "module": "index.js",
6
6
  "sideEffects": false,
7
7
  "main": "index.commonjs.js",
8
- "types.test": "./index.d.ts.test",
8
+ "types": "./index.d.ts",
9
9
  "scripts": {
10
10
  "test": "mocha --require @babel/register --colors --bail --reporter spec --require ./test/setup.js \"./{,!(node_modules|commonjs|modules)/**/}*.test.js\" --recursive",
11
11
  "test-coverage": "istanbul cover -x \"commonjs/**\" -x \"modules/**\" -x \"*.test.js\" node_modules/mocha/bin/_mocha -- --compilers js:babel-core/register --colors --reporter dot --require ./test/setup.js \"./{,!(node_modules|commonjs|modules)/**/}*.test.js\" --recursive",
@@ -4,6 +4,6 @@
4
4
  "version": "1.0.0",
5
5
  "main": "index.commonjs.js",
6
6
  "module": "index.js",
7
- "types.test": "./index.d.ts.test",
7
+ "types": "./index.d.ts",
8
8
  "sideEffects": false
9
9
  }
@@ -0,0 +1,6 @@
1
+ exports = module.exports = require('../commonjs/read/readXlsxFileWebWorker').default
2
+ exports['default'] = require('../commonjs/read/readXlsxFileWebWorker').default
3
+ exports.parseExcelDate = require('../commonjs/read/parseDate').default
4
+ exports.Integer = require('../commonjs/types/Integer').default
5
+ exports.Email = require('../commonjs/types/Email').default
6
+ exports.URL = require('../commonjs/types/URL').default
@@ -0,0 +1,17 @@
1
+ import {
2
+ ParseWithSchemaOptions,
3
+ ParseWithMapOptions,
4
+ ParseWithoutSchemaOptions,
5
+ ParsedObjectsResult,
6
+ Row
7
+ } from '../types.d';
8
+
9
+ export function parseExcelDate(excelSerialDate: number) : typeof Date;
10
+
11
+ type Input = File;
12
+
13
+ export function readXlsxFile<T extends object>(input: Input, options: ParseWithSchemaOptions<T>) : Promise<ParsedObjectsResult<T>>;
14
+ export function readXlsxFile<T extends object>(input: Input, options: ParseWithMapOptions) : Promise<ParsedObjectsResult<T>>;
15
+ export function readXlsxFile(input: Input, options?: ParseWithoutSchemaOptions) : Promise<Row[]>;
16
+
17
+ export default readXlsxFile;
@@ -0,0 +1,5 @@
1
+ export { default as default } from '../modules/read/readXlsxFileWebWorker'
2
+ export { default as parseExcelDate } from '../modules/read/parseDate'
3
+ export { default as Integer } from '../modules/types/Integer'
4
+ export { default as Email } from '../modules/types/Email'
5
+ export { default as URL } from '../modules/types/URL'
@@ -0,0 +1,9 @@
1
+ {
2
+ "private": true,
3
+ "name": "read-excel-file/web-worker",
4
+ "version": "1.0.0",
5
+ "main": "index.commonjs.js",
6
+ "module": "index.js",
7
+ "types": "./index.d.ts",
8
+ "sideEffects": false
9
+ }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../source/xml/xmlNode.js"],"names":["createDocument","content","XMLDOM","DOMParser","parseFromString"],"mappings":";;;;;;;AAAA;;;;eAEe;AACdA,EAAAA,cADc,0BACCC,OADD,EACU;AACvB,WAAO,IAAIC,mBAAOC,SAAX,GAAuBC,eAAvB,CAAuCH,OAAvC,CAAP;AACA;AAHa,C","sourcesContent":["import XMLDOM from '@xmldom/xmldom'\r\n\r\nexport default {\r\n\tcreateDocument(content) {\r\n\t\treturn new XMLDOM.DOMParser().parseFromString(content)\r\n\t}\r\n}"],"file":"xmlNode.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../source/xml/xmlNode.js"],"names":["XMLDOM","createDocument","content","DOMParser","parseFromString"],"mappings":"AAAA,OAAOA,MAAP,MAAmB,gBAAnB;AAEA,eAAe;AACdC,EAAAA,cADc,0BACCC,OADD,EACU;AACvB,WAAO,IAAIF,MAAM,CAACG,SAAX,GAAuBC,eAAvB,CAAuCF,OAAvC,CAAP;AACA;AAHa,CAAf","sourcesContent":["import XMLDOM from '@xmldom/xmldom'\r\n\r\nexport default {\r\n\tcreateDocument(content) {\r\n\t\treturn new XMLDOM.DOMParser().parseFromString(content)\r\n\t}\r\n}"],"file":"xmlNode.js"}