read-excel-file 5.2.24 → 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.
@@ -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"}
@@ -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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "read-excel-file",
3
- "version": "5.2.24",
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,