read-excel-file 9.2.0 → 9.3.1
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.
- package/.gitlab-ci.yml +1 -1
- package/CHANGELOG.md +5 -0
- package/README.md +153 -50
- package/bundle/read-excel-file.min.js +1 -1
- package/bundle/read-excel-file.min.js.map +1 -1
- package/bundle/read-excel-file.min.old.js +2 -0
- package/bundle/read-excel-file.min.old.js.map +1 -0
- package/commonjs/export/convertValuesFromUint8ArraysToStrings.js +3 -0
- package/commonjs/export/convertValuesFromUint8ArraysToStrings.js.map +1 -1
- package/commonjs/export/parseSheet.js +12 -9
- package/commonjs/export/parseSheet.js.map +1 -1
- package/commonjs/export/readSheetBrowser.js +6 -2
- package/commonjs/export/readSheetBrowser.js.map +1 -1
- package/commonjs/export/readSheetNode.js +6 -2
- package/commonjs/export/readSheetNode.js.map +1 -1
- package/commonjs/export/readSheetUniversal.js +14 -2
- package/commonjs/export/readSheetUniversal.js.map +1 -1
- package/commonjs/export/readSheetWebWorker.js +12 -2
- package/commonjs/export/readSheetWebWorker.js.map +1 -1
- package/commonjs/export/readXlsxFileBrowser.js +6 -2
- package/commonjs/export/readXlsxFileBrowser.js.map +1 -1
- package/commonjs/export/readXlsxFileNode.js +6 -2
- package/commonjs/export/readXlsxFileNode.js.map +1 -1
- package/commonjs/export/readXlsxFileUniversal.js +14 -2
- package/commonjs/export/readXlsxFileUniversal.js.map +1 -1
- package/commonjs/export/readXlsxFileWebWorker.js +12 -2
- package/commonjs/export/readXlsxFileWebWorker.js.map +1 -1
- package/commonjs/export/unpackXlsxFileBrowser.js +29 -6
- package/commonjs/export/unpackXlsxFileBrowser.js.map +1 -1
- package/commonjs/export/unpackXlsxFileNode.js +6 -0
- package/commonjs/export/unpackXlsxFileNode.js.map +1 -1
- package/commonjs/export/unpackXlsxFileUniversal.js +6 -0
- package/commonjs/export/unpackXlsxFileUniversal.js.map +1 -1
- package/commonjs/export/unpackXlsxFileWebWorker.js +14 -0
- package/commonjs/export/unpackXlsxFileWebWorker.js.map +1 -0
- package/commonjs/parseSheetData/parseSheetData.js +6 -6
- package/commonjs/parseSheetData/parseSheetData.js.map +1 -1
- package/commonjs/utility/checkpoint.js +33 -0
- package/commonjs/utility/checkpoint.js.map +1 -0
- package/commonjs/utility/isObject.js +15 -0
- package/commonjs/utility/isObject.js.map +1 -0
- package/commonjs/utility/isPromise.js +18 -0
- package/commonjs/utility/isPromise.js.map +1 -0
- package/commonjs/xlsx/convertCellsToData2dArray.js +0 -3
- package/commonjs/xlsx/convertCellsToData2dArray.js.map +1 -1
- package/commonjs/xlsx/isDateFormatStyle.js +2 -2
- package/commonjs/xlsx/isDateFormatStyle.js.map +1 -1
- package/commonjs/xlsx/parseCell.js +89 -24
- package/commonjs/xlsx/parseCell.js.map +1 -1
- package/{modules/xlsx/parseCellCoordinates.js → commonjs/xlsx/parseCellAddress.js} +18 -7
- package/commonjs/xlsx/parseCellAddress.js.map +1 -0
- package/commonjs/xlsx/parseCellValue.js +7 -23
- package/commonjs/xlsx/parseCellValue.js.map +1 -1
- package/commonjs/xlsx/parseFilePaths.js +31 -32
- package/commonjs/xlsx/parseFilePaths.js.map +1 -1
- package/commonjs/xlsx/parseNumber.js +20 -0
- package/commonjs/xlsx/parseNumber.js.map +1 -0
- package/commonjs/xlsx/parseSharedString.js +64 -0
- package/commonjs/xlsx/parseSharedString.js.map +1 -0
- package/commonjs/xlsx/parseSharedStrings.js +45 -5
- package/commonjs/xlsx/parseSharedStrings.js.map +1 -1
- package/commonjs/xlsx/parseSheet.js +93 -9
- package/commonjs/xlsx/parseSheet.js.map +1 -1
- package/commonjs/xlsx/parseSheetData.js +68 -0
- package/commonjs/xlsx/parseSheetData.js.map +1 -0
- package/commonjs/xlsx/parseSpreadsheetContents.js +244 -43
- package/commonjs/xlsx/parseSpreadsheetContents.js.map +1 -1
- package/commonjs/xlsx/parseSpreadsheetInfo.js +67 -36
- package/commonjs/xlsx/parseSpreadsheetInfo.js.map +1 -1
- package/commonjs/xlsx/parseStyles.js +89 -36
- package/commonjs/xlsx/parseStyles.js.map +1 -1
- package/commonjs/xml/dom.js +2 -1
- package/commonjs/xml/dom.js.map +1 -1
- package/commonjs/xml/parseXmlStream.js +14 -0
- package/commonjs/xml/parseXmlStream.js.map +1 -0
- package/commonjs/xml/parseXmlStream.sax.js +109 -0
- package/commonjs/xml/parseXmlStream.sax.js.map +1 -0
- package/commonjs/xml/parseXmlStream.saxen.code.js +953 -0
- package/commonjs/xml/parseXmlStream.saxen.code.js.map +1 -0
- package/commonjs/xml/parseXmlStream.saxen.js +85 -0
- package/commonjs/xml/parseXmlStream.saxen.js.map +1 -0
- package/commonjs/xml/xlsx.js +75 -40
- package/commonjs/xml/xlsx.js.map +1 -1
- package/commonjs/zip/unzipFromArrayBuffer.js +5 -14
- package/commonjs/zip/unzipFromArrayBuffer.js.map +1 -1
- package/commonjs/zip/unzipFromStream.fflate.js +154 -25
- package/commonjs/zip/unzipFromStream.fflate.js.map +1 -1
- package/commonjs/zip/unzipFromStream.js.map +1 -1
- package/commonjs/zip/unzipFromStream.unzipper.js +37 -26
- package/commonjs/zip/unzipFromStream.unzipper.js.map +1 -1
- package/modules/export/convertValuesFromUint8ArraysToStrings.js +2 -0
- package/modules/export/convertValuesFromUint8ArraysToStrings.js.map +1 -1
- package/modules/export/parseSheet.js +12 -9
- package/modules/export/parseSheet.js.map +1 -1
- package/modules/export/readSheetBrowser.js +5 -2
- package/modules/export/readSheetBrowser.js.map +1 -1
- package/modules/export/readSheetNode.js +5 -2
- package/modules/export/readSheetNode.js.map +1 -1
- package/modules/export/readSheetUniversal.js +14 -2
- package/modules/export/readSheetUniversal.js.map +1 -1
- package/modules/export/readSheetWebWorker.js +12 -2
- package/modules/export/readSheetWebWorker.js.map +1 -1
- package/modules/export/readXlsxFileBrowser.js +5 -2
- package/modules/export/readXlsxFileBrowser.js.map +1 -1
- package/modules/export/readXlsxFileNode.js +5 -2
- package/modules/export/readXlsxFileNode.js.map +1 -1
- package/modules/export/readXlsxFileUniversal.js +14 -2
- package/modules/export/readXlsxFileUniversal.js.map +1 -1
- package/modules/export/readXlsxFileWebWorker.js +12 -2
- package/modules/export/readXlsxFileWebWorker.js.map +1 -1
- package/modules/export/unpackXlsxFileBrowser.js +26 -6
- package/modules/export/unpackXlsxFileBrowser.js.map +1 -1
- package/modules/export/unpackXlsxFileNode.js +3 -0
- package/modules/export/unpackXlsxFileNode.js.map +1 -1
- package/modules/export/unpackXlsxFileUniversal.js +3 -0
- package/modules/export/unpackXlsxFileUniversal.js.map +1 -1
- package/modules/export/unpackXlsxFileWebWorker.js +6 -0
- package/modules/export/unpackXlsxFileWebWorker.js.map +1 -0
- package/modules/parseSheetData/parseSheetData.js +4 -4
- package/modules/parseSheetData/parseSheetData.js.map +1 -1
- package/modules/utility/checkpoint.js +25 -0
- package/modules/utility/checkpoint.js.map +1 -0
- package/modules/utility/isObject.js +9 -0
- package/modules/utility/isObject.js.map +1 -0
- package/modules/utility/isPromise.js +12 -0
- package/modules/utility/isPromise.js.map +1 -0
- package/modules/xlsx/convertCellsToData2dArray.js +0 -3
- package/modules/xlsx/convertCellsToData2dArray.js.map +1 -1
- package/modules/xlsx/isDateFormatStyle.js +2 -2
- package/modules/xlsx/isDateFormatStyle.js.map +1 -1
- package/modules/xlsx/parseCell.js +85 -24
- package/modules/xlsx/parseCell.js.map +1 -1
- package/{commonjs/xlsx/parseCellCoordinates.js → modules/xlsx/parseCellAddress.js} +12 -13
- package/modules/xlsx/parseCellAddress.js.map +1 -0
- package/modules/xlsx/parseCellValue.js +7 -23
- package/modules/xlsx/parseCellValue.js.map +1 -1
- package/modules/xlsx/parseFilePaths.js +31 -33
- package/modules/xlsx/parseFilePaths.js.map +1 -1
- package/modules/xlsx/parseNumber.js +14 -0
- package/modules/xlsx/parseNumber.js.map +1 -0
- package/modules/xlsx/parseSharedString.js +55 -0
- package/modules/xlsx/parseSharedString.js.map +1 -0
- package/modules/xlsx/parseSharedStrings.js +46 -5
- package/modules/xlsx/parseSharedStrings.js.map +1 -1
- package/modules/xlsx/parseSheet.js +91 -9
- package/modules/xlsx/parseSheet.js.map +1 -1
- package/modules/xlsx/parseSheetData.js +55 -0
- package/modules/xlsx/parseSheetData.js.map +1 -0
- package/modules/xlsx/parseSpreadsheetContents.js +242 -43
- package/modules/xlsx/parseSpreadsheetContents.js.map +1 -1
- package/modules/xlsx/parseSpreadsheetInfo.js +67 -37
- package/modules/xlsx/parseSpreadsheetInfo.js.map +1 -1
- package/modules/xlsx/parseStyles.js +88 -36
- package/modules/xlsx/parseStyles.js.map +1 -1
- package/modules/xml/dom.js +2 -1
- package/modules/xml/dom.js.map +1 -1
- package/modules/xml/parseXmlStream.js +18 -0
- package/modules/xml/parseXmlStream.js.map +1 -0
- package/modules/xml/parseXmlStream.sax.js +103 -0
- package/modules/xml/parseXmlStream.sax.js.map +1 -0
- package/modules/xml/parseXmlStream.saxen.code.js +947 -0
- package/modules/xml/parseXmlStream.saxen.code.js.map +1 -0
- package/modules/xml/parseXmlStream.saxen.js +79 -0
- package/modules/xml/parseXmlStream.saxen.js.map +1 -0
- package/modules/xml/xlsx.js +72 -36
- package/modules/xml/xlsx.js.map +1 -1
- package/modules/zip/unzipFromArrayBuffer.js +5 -14
- package/modules/zip/unzipFromArrayBuffer.js.map +1 -1
- package/modules/zip/unzipFromStream.fflate.js +157 -24
- package/modules/zip/unzipFromStream.fflate.js.map +1 -1
- package/modules/zip/unzipFromStream.js +56 -2
- package/modules/zip/unzipFromStream.js.map +1 -1
- package/modules/zip/unzipFromStream.unzipper.js +38 -26
- package/modules/zip/unzipFromStream.unzipper.js.map +1 -1
- package/package.json +4 -6
- package/commonjs/xlsx/parseCellCoordinates.js.map +0 -1
- package/commonjs/xlsx/parseCells.js +0 -34
- package/commonjs/xlsx/parseCells.js.map +0 -1
- package/commonjs/xlsx/parseSheetDimensions.js +0 -43
- package/commonjs/xlsx/parseSheetDimensions.js.map +0 -1
- package/commonjs/xml/xml.js +0 -13
- package/commonjs/xml/xml.js.map +0 -1
- package/commonjs/xml/xmlBrowser.js +0 -17
- package/commonjs/xml/xmlBrowser.js.map +0 -1
- package/commonjs/xml/xpath/xlsx-xpath.js +0 -92
- package/commonjs/xml/xpath/xlsx-xpath.js.map +0 -1
- package/commonjs/xml/xpath/xpathBrowser.js +0 -33
- package/commonjs/xml/xpath/xpathBrowser.js.map +0 -1
- package/commonjs/xml/xpath/xpathNode.js +0 -16
- package/commonjs/xml/xpath/xpathNode.js.map +0 -1
- package/modules/xlsx/parseCellCoordinates.js.map +0 -1
- package/modules/xlsx/parseCells.js +0 -27
- package/modules/xlsx/parseCells.js.map +0 -1
- package/modules/xlsx/parseSheetDimensions.js +0 -37
- package/modules/xlsx/parseSheetDimensions.js.map +0 -1
- package/modules/xml/xml.js +0 -7
- package/modules/xml/xml.js.map +0 -1
- package/modules/xml/xmlBrowser.js +0 -11
- package/modules/xml/xmlBrowser.js.map +0 -1
- package/modules/xml/xpath/xlsx-xpath.js +0 -73
- package/modules/xml/xpath/xlsx-xpath.js.map +0 -1
- package/modules/xml/xpath/xpathBrowser.js +0 -27
- package/modules/xml/xpath/xpathBrowser.js.map +0 -1
- package/modules/xml/xpath/xpathNode.js +0 -9
- package/modules/xml/xpath/xpathNode.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "read-excel-file",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.3.1",
|
|
4
4
|
"description": "Read `.xlsx` files in a web browser or in Node.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -45,9 +45,9 @@
|
|
|
45
45
|
"node": ">=18"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@xmldom/xmldom": "^0.9.10",
|
|
49
48
|
"fflate": "^0.8.3",
|
|
50
|
-
"unzipper-esm": "^0.13.
|
|
49
|
+
"unzipper-esm": "^0.13.2",
|
|
50
|
+
"saxen": "^11.0.2"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@babel/cli": "^7.17.10",
|
|
@@ -56,20 +56,18 @@
|
|
|
56
56
|
"@babel/plugin-transform-for-of": "^7.17.12",
|
|
57
57
|
"@babel/plugin-transform-runtime": "^7.17.12",
|
|
58
58
|
"@babel/preset-env": "^7.17.12",
|
|
59
|
-
"@babel/register": "^7.17.7",
|
|
60
59
|
"chai": "^4.3.6",
|
|
61
60
|
"core-js": "^3.22.5",
|
|
62
61
|
"cross-env": "^10.1.0",
|
|
63
62
|
"mocha": "^10.0.0",
|
|
64
63
|
"npm-run-all": "^4.1.5",
|
|
65
|
-
"regenerator-runtime": "^0.13.9",
|
|
66
64
|
"rimraf": "^6.1.3",
|
|
67
65
|
"rollup": "^2.73.0",
|
|
68
66
|
"rollup-plugin-commonjs": "^10.1.0",
|
|
69
67
|
"rollup-plugin-json": "^4.0.0",
|
|
70
68
|
"rollup-plugin-node-resolve": "^5.2.0",
|
|
71
69
|
"rollup-plugin-terser": "^7.0.2",
|
|
72
|
-
"
|
|
70
|
+
"sax": "^1.6.0"
|
|
73
71
|
},
|
|
74
72
|
"repository": {
|
|
75
73
|
"type": "git",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseCellCoordinates.js","names":["parseCellCoordinates","coordinatesString","_coordinatesString$sp","split","_coordinatesString$sp2","_slicedToArray","column","row","Number","getColumnNumberFromColumnLetters","trim","LETTERS","columnLetters","n","i","length","indexOf"],"sources":["../../source/xlsx/parseCellCoordinates.js"],"sourcesContent":["export default function parseCellCoordinates(coordinatesString) {\r\n // Coordinate examples: \"AA2091\", \"R988\", \"B1\".\r\n const [column, row] = coordinatesString.split(/(\\d+)/)\r\n return [\r\n // Row.\r\n Number(row),\r\n // Column.\r\n\t\t// It's not clear why would `column` ever be non-trimmed,\r\n\t\t// but if it was added here then perhaps it could hypothetically happen, or smth.\r\n getColumnNumberFromColumnLetters(column.trim())\r\n ]\r\n}\r\n\r\n// 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\n// Converts a letter coordinate to a digit coordinate.\r\n// Examples: \"A\" -> 1, \"B\" -> 2, \"Z\" -> 26, \"AA\" -> 27, etc.\r\nfunction getColumnNumberFromColumnLetters(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"],"mappings":";;;;;;;;;;;;AAAe,SAASA,oBAAoBA,CAACC,iBAAiB,EAAE;EAC9D;EACA,IAAAC,qBAAA,GAAsBD,iBAAiB,CAACE,KAAK,CAAC,OAAO,CAAC;IAAAC,sBAAA,GAAAC,cAAA,CAAAH,qBAAA;IAA/CI,MAAM,GAAAF,sBAAA;IAAEG,GAAG,GAAAH,sBAAA;EAClB,OAAO;EACL;EACAI,MAAM,CAACD,GAAG,CAAC;EACX;EACF;EACA;EACEE,gCAAgC,CAACH,MAAM,CAACI,IAAI,CAAC,CAAC,CAAC,CAChD;AACH;;AAEA;AACA,IAAMC,OAAO,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;;AAEtJ;AACA;AACA,SAASF,gCAAgCA,CAACG,aAAa,EAAE;EACvD;EACA,IAAIC,CAAC,GAAG,CAAC;EACT,IAAIC,CAAC,GAAG,CAAC;EACT,OAAOA,CAAC,GAAGF,aAAa,CAACG,MAAM,EAAE;IAC/BF,CAAC,IAAI,EAAE;IACPA,CAAC,IAAIF,OAAO,CAACK,OAAO,CAACJ,aAAa,CAACE,CAAC,CAAC,CAAC;IACtCA,CAAC,EAAE;EACL;EACA,OAAOD,CAAC;AACV"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = parseCells;
|
|
7
|
-
var _xlsx = require("../xml/xlsx.js");
|
|
8
|
-
var _parseCell = _interopRequireDefault(require("./parseCell.js"));
|
|
9
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
10
|
-
function parseCells(sheetDocument, sharedStrings, styles, epoch1904, options) {
|
|
11
|
-
var cells = (0, _xlsx.getCellElements)(sheetDocument);
|
|
12
|
-
if (cells.length === 0) {
|
|
13
|
-
return [];
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
// It seems like the idea of parsing "merged cells" was abandoned without being finished.
|
|
17
|
-
// Here, it seems to just get to the stage of parsing merged cell coordinates.
|
|
18
|
-
// Perhaps it's because it's not clear how would the package return merged cell results.
|
|
19
|
-
// I.e. should it just duplicate the value in each one of the merged cells?
|
|
20
|
-
// Or should it keep the existing behavior of only returning the value of the top-most left-most cell
|
|
21
|
-
// and then return `null` for the other ones?
|
|
22
|
-
// Perhaps the latter (existing) approach was found to be the most sensible.
|
|
23
|
-
//
|
|
24
|
-
// const mergedCells = getMergedCellCoordinates(sheetDocument)
|
|
25
|
-
// for (const mergedCell of mergedCells) {
|
|
26
|
-
// const [from, to] = mergedCell.split(':').map(parseCellCoordinates)
|
|
27
|
-
// console.log('Merged Cell.', 'From:', from, 'To:', to)
|
|
28
|
-
// }
|
|
29
|
-
|
|
30
|
-
return cells.map(function (element) {
|
|
31
|
-
return (0, _parseCell["default"])(element, sheetDocument, sharedStrings, styles, epoch1904, options);
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=parseCells.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseCells.js","names":["_xlsx","require","_parseCell","_interopRequireDefault","obj","__esModule","parseCells","sheetDocument","sharedStrings","styles","epoch1904","options","cells","getCellElements","length","map","element","parseCell"],"sources":["../../source/xlsx/parseCells.js"],"sourcesContent":["import { getCellElements } from '../xml/xlsx.js'\r\n\r\nimport parseCell from './parseCell.js'\r\n\r\nexport default function parseCells(sheetDocument, sharedStrings, styles, epoch1904, options) {\r\n const cells = getCellElements(sheetDocument)\r\n\r\n if (cells.length === 0) {\r\n return []\r\n }\r\n\r\n // It seems like the idea of parsing \"merged cells\" was abandoned without being finished.\r\n // Here, it seems to just get to the stage of parsing merged cell coordinates.\r\n // Perhaps it's because it's not clear how would the package return merged cell results.\r\n // I.e. should it just duplicate the value in each one of the merged cells?\r\n // Or should it keep the existing behavior of only returning the value of the top-most left-most cell\r\n // and then return `null` for the other ones?\r\n // Perhaps the latter (existing) approach was found to be the most sensible.\r\n //\r\n // const mergedCells = getMergedCellCoordinates(sheetDocument)\r\n // for (const mergedCell of mergedCells) {\r\n // const [from, to] = mergedCell.split(':').map(parseCellCoordinates)\r\n // console.log('Merged Cell.', 'From:', from, 'To:', to)\r\n // }\r\n\r\n return cells.map((element) => {\r\n return parseCell(element, sheetDocument, sharedStrings, styles, epoch1904, options)\r\n })\r\n}"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAsC,SAAAE,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAEvB,SAASE,UAAUA,CAACC,aAAa,EAAEC,aAAa,EAAEC,MAAM,EAAEC,SAAS,EAAEC,OAAO,EAAE;EAC3F,IAAMC,KAAK,GAAG,IAAAC,qBAAe,EAACN,aAAa,CAAC;EAE5C,IAAIK,KAAK,CAACE,MAAM,KAAK,CAAC,EAAE;IACtB,OAAO,EAAE;EACX;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA,OAAOF,KAAK,CAACG,GAAG,CAAC,UAACC,OAAO,EAAK;IAC5B,OAAO,IAAAC,qBAAS,EAACD,OAAO,EAAET,aAAa,EAAEC,aAAa,EAAEC,MAAM,EAAEC,SAAS,EAAEC,OAAO,CAAC;EACrF,CAAC,CAAC;AACJ"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = parseSheetDimensions;
|
|
7
|
-
var _parseCellCoordinates = _interopRequireDefault(require("./parseCellCoordinates.js"));
|
|
8
|
-
var _xlsx = require("../xml/xlsx.js");
|
|
9
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
10
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
11
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
12
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
13
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
14
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
15
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
16
|
-
// `dimensions` defines the spreadsheet area containing all non-empty cells.
|
|
17
|
-
// https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sheetdimension?view=openxml-2.8.1
|
|
18
|
-
function parseSheetDimensions(sheetDocument) {
|
|
19
|
-
var dimensions = (0, _xlsx.getDimensions)(sheetDocument);
|
|
20
|
-
if (dimensions) {
|
|
21
|
-
dimensions = dimensions.split(':').map(_parseCellCoordinates["default"]).map(function (_ref) {
|
|
22
|
-
var _ref2 = _slicedToArray(_ref, 2),
|
|
23
|
-
row = _ref2[0],
|
|
24
|
-
column = _ref2[1];
|
|
25
|
-
return {
|
|
26
|
-
row: row,
|
|
27
|
-
column: column
|
|
28
|
-
};
|
|
29
|
-
});
|
|
30
|
-
// Sometimes there can be just a single cell as a spreadsheet's "dimensions".
|
|
31
|
-
// For example, the default "dimensions" in Apache POI library is "A1",
|
|
32
|
-
// meaning that only the first cell in the spreadsheet is used.
|
|
33
|
-
//
|
|
34
|
-
// A quote from Apache POI library:
|
|
35
|
-
// "Single cell ranges are formatted like single cell references (e.g. 'A1' instead of 'A1:A1')."
|
|
36
|
-
//
|
|
37
|
-
if (dimensions.length === 1) {
|
|
38
|
-
dimensions = [dimensions[0], dimensions[0]];
|
|
39
|
-
}
|
|
40
|
-
return dimensions;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=parseSheetDimensions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseSheetDimensions.js","names":["_parseCellCoordinates","_interopRequireDefault","require","_xlsx","obj","__esModule","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","Array","from","test","len","length","arr2","r","l","t","Symbol","iterator","e","u","a","f","next","done","push","value","isArray","parseSheetDimensions","sheetDocument","dimensions","getDimensions","split","map","parseCellCoordinates","_ref","_ref2","row","column"],"sources":["../../source/xlsx/parseSheetDimensions.js"],"sourcesContent":["import parseCellCoordinates from './parseCellCoordinates.js'\r\n\r\nimport { getDimensions } from '../xml/xlsx.js'\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 parseSheetDimensions(sheetDocument) {\r\n let dimensions = getDimensions(sheetDocument)\r\n if (dimensions) {\r\n dimensions = dimensions.split(':').map(parseCellCoordinates).map(([row, column]) => ({\r\n row,\r\n column\r\n }))\r\n // Sometimes there can be just a single cell as a spreadsheet's \"dimensions\".\r\n // For example, the default \"dimensions\" in Apache POI library is \"A1\",\r\n // meaning that only the first cell in the spreadsheet is used.\r\n //\r\n // A quote from Apache POI library:\r\n // \"Single cell ranges are formatted like single cell references (e.g. 'A1' instead of 'A1:A1').\"\r\n //\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"],"mappings":"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"}
|
package/commonjs/xml/xml.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
var _xmldom = require("@xmldom/xmldom");
|
|
8
|
-
var _default = exports["default"] = {
|
|
9
|
-
createDocument: function createDocument(content) {
|
|
10
|
-
return new _xmldom.DOMParser().parseFromString(content, 'text/xml');
|
|
11
|
-
}
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=xml.js.map
|
package/commonjs/xml/xml.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"xml.js","names":["_xmldom","require","_default","exports","createDocument","content","DOMParser","parseFromString"],"sources":["../../source/xml/xml.js"],"sourcesContent":["import { DOMParser } from '@xmldom/xmldom'\r\n\r\nexport default {\r\n\tcreateDocument(content) {\r\n\t\treturn new DOMParser().parseFromString(content, 'text/xml')\r\n\t}\r\n}"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAA0C,IAAAC,QAAA,GAAAC,OAAA,cAE3B;EACdC,cAAc,WAAAA,eAACC,OAAO,EAAE;IACvB,OAAO,IAAIC,iBAAS,CAAC,CAAC,CAACC,eAAe,CAACF,OAAO,EAAE,UAAU,CAAC;EAC5D;AACD,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
var _default = exports["default"] = {
|
|
8
|
-
createDocument: function createDocument(content) {
|
|
9
|
-
// if (!content) {
|
|
10
|
-
// throw new Error('No *.xml content')
|
|
11
|
-
// }
|
|
12
|
-
// A weird bug: it won't parse XML unless it's trimmed.
|
|
13
|
-
// https://github.com/catamphetamine/read-excel-file/issues/21
|
|
14
|
-
return new DOMParser().parseFromString(content.trim(), 'text/xml');
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=xmlBrowser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"xmlBrowser.js","names":["createDocument","content","DOMParser","parseFromString","trim"],"sources":["../../source/xml/xmlBrowser.js"],"sourcesContent":["export default {\r\n\tcreateDocument(content) {\r\n\t\t// if (!content) {\r\n\t\t// \tthrow new Error('No *.xml content')\r\n\t\t// }\r\n\t\t// A weird bug: it won't parse XML unless it's trimmed.\r\n\t\t// https://github.com/catamphetamine/read-excel-file/issues/21\r\n\t\treturn new DOMParser().parseFromString(content.trim(), 'text/xml')\r\n\t}\r\n}"],"mappings":";;;;;;oCAAe;EACdA,cAAc,WAAAA,eAACC,OAAO,EAAE;IACvB;IACA;IACA;IACA;IACA;IACA,OAAO,IAAIC,SAAS,CAAC,CAAC,CAACC,eAAe,CAACF,OAAO,CAACG,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC;EACnE;AACD,CAAC"}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getBaseStyles = getBaseStyles;
|
|
7
|
-
exports.getCellElements = getCellElements;
|
|
8
|
-
exports.getCellInlineStringValue = getCellInlineStringValue;
|
|
9
|
-
exports.getCellStyles = getCellStyles;
|
|
10
|
-
exports.getCellValue = getCellValue;
|
|
11
|
-
exports.getDimensions = getDimensions;
|
|
12
|
-
exports.getMergedCellCoordinates = getMergedCellCoordinates;
|
|
13
|
-
exports.getNumberFormats = getNumberFormats;
|
|
14
|
-
exports.getRelationships = getRelationships;
|
|
15
|
-
exports.getSharedStrings = getSharedStrings;
|
|
16
|
-
exports.getSheets = getSheets;
|
|
17
|
-
exports.getWorkbookProperties = getWorkbookProperties;
|
|
18
|
-
var _xpathNode = _interopRequireDefault(require("./xpathNode"));
|
|
19
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
20
|
-
// This file is no longer used.
|
|
21
|
-
|
|
22
|
-
// Turns out IE11 doesn't support XPath, so not using `./xpathBrowser` for browsers.
|
|
23
|
-
// https://github.com/catamphetamine/read-excel-file/issues/26
|
|
24
|
-
// The inclusion of `xpath` package in `./xpathNode`
|
|
25
|
-
// increases the bundle size by about 100 kilobytes.
|
|
26
|
-
// IE11 is a wide-spread browser and it's unlikely that
|
|
27
|
-
// anyone would ignore it for now.
|
|
28
|
-
// There could be a separate export `read-excel-file/ie11`
|
|
29
|
-
// for using `./xpathNode` instead of `./xpathBrowser`
|
|
30
|
-
// but this library has been migrated to not using `xpath` anyway.
|
|
31
|
-
// This code is just alternative/historical now, it seems.
|
|
32
|
-
|
|
33
|
-
var namespaces = {
|
|
34
|
-
a: 'http://schemas.openxmlformats.org/spreadsheetml/2006/main',
|
|
35
|
-
// This one seems to be for `r:id` attributes on `<sheet>`s.
|
|
36
|
-
r: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',
|
|
37
|
-
// This one seems to be for `<Relationships/>` file.
|
|
38
|
-
rr: 'http://schemas.openxmlformats.org/package/2006/relationships'
|
|
39
|
-
};
|
|
40
|
-
function getCellElements(document) {
|
|
41
|
-
return (0, _xpathNode["default"])(document, null, '/a:worksheet/a:sheetData/a:row/a:c', namespaces);
|
|
42
|
-
}
|
|
43
|
-
function getMergedCellCoordinates(document) {
|
|
44
|
-
return (0, _xpathNode["default"])(document, null, '/a:worksheet/a:mergedCells/a:mergedCell/@ref', namespaces);
|
|
45
|
-
}
|
|
46
|
-
function getCellValue(document, element) {
|
|
47
|
-
return (0, _xpathNode["default"])(document, element, './a:v', namespaces)[0];
|
|
48
|
-
}
|
|
49
|
-
function getCellInlineStringValue(document, element) {
|
|
50
|
-
return (0, _xpathNode["default"])(document, element, './a:is/a:t', namespaces)[0].textContent;
|
|
51
|
-
}
|
|
52
|
-
function getDimensions(document) {
|
|
53
|
-
var dimensions = (0, _xpathNode["default"])(document, null, '/a:worksheet/a:dimension/@ref', namespaces)[0];
|
|
54
|
-
if (dimensions) {
|
|
55
|
-
return dimensions.textContent;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
function getBaseStyles(document) {
|
|
59
|
-
return (0, _xpathNode["default"])(document, null, '/a:styleSheet/a:cellStyleXfs/a:xf', namespaces);
|
|
60
|
-
}
|
|
61
|
-
function getCellStyles(document) {
|
|
62
|
-
return (0, _xpathNode["default"])(document, null, '/a:styleSheet/a:cellXfs/a:xf', namespaces);
|
|
63
|
-
}
|
|
64
|
-
function getNumberFormats(document) {
|
|
65
|
-
return (0, _xpathNode["default"])(document, null, '/a:styleSheet/a:numFmts/a:numFmt', namespaces);
|
|
66
|
-
}
|
|
67
|
-
function getSharedStrings(document) {
|
|
68
|
-
// An `<si/>` element can contain a `<t/>` (simplest case) or a set of `<r/>` ("rich formatting") elements having `<t/>`.
|
|
69
|
-
// https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sharedstringitem?redirectedfrom=MSDN&view=openxml-2.8.1
|
|
70
|
-
// http://www.datypic.com/sc/ooxml/e-ssml_si-1.html
|
|
71
|
-
|
|
72
|
-
// The ".//a:t[not(ancestor::a:rPh)]" selector means:
|
|
73
|
-
// "select all `<t/>` that are not children of `<rPh/>`".
|
|
74
|
-
// https://stackoverflow.com/questions/42773772/xpath-span-what-does-the-dot-mean
|
|
75
|
-
// `<rPh><t></t></rPh>` seems to be some "phonetic data" added for languages like Japanese that should be ignored.
|
|
76
|
-
// https://github.com/doy/spreadsheet-parsexlsx/issues/72
|
|
77
|
-
return (0, _xpathNode["default"])(document, null, '/a:sst/a:si', namespaces).map(function (string) {
|
|
78
|
-
return (0, _xpathNode["default"])(document, string, './/a:t[not(ancestor::a:rPh)]', namespaces).map(function (_) {
|
|
79
|
-
return _.textContent;
|
|
80
|
-
}).join('');
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
function getWorkbookProperties(document) {
|
|
84
|
-
return (0, _xpathNode["default"])(document, null, '/a:workbook/a:workbookPr', namespaces)[0];
|
|
85
|
-
}
|
|
86
|
-
function getRelationships(document) {
|
|
87
|
-
return (0, _xpathNode["default"])(document, null, '/rr:Relationships/rr:Relationship', namespaces);
|
|
88
|
-
}
|
|
89
|
-
function getSheets(document) {
|
|
90
|
-
return (0, _xpathNode["default"])(document, null, '/a:workbook/a:sheets/a:sheet', namespaces);
|
|
91
|
-
}
|
|
92
|
-
//# sourceMappingURL=xlsx-xpath.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"xlsx-xpath.js","names":["_xpathNode","_interopRequireDefault","require","obj","__esModule","namespaces","a","r","rr","getCellElements","document","xpath","getMergedCellCoordinates","getCellValue","element","getCellInlineStringValue","textContent","getDimensions","dimensions","getBaseStyles","getCellStyles","getNumberFormats","getSharedStrings","map","string","_","join","getWorkbookProperties","getRelationships","getSheets"],"sources":["../../../source/xml/xpath/xlsx-xpath.js"],"sourcesContent":["// This file is no longer used.\r\n\r\n// Turns out IE11 doesn't support XPath, so not using `./xpathBrowser` for browsers.\r\n// https://github.com/catamphetamine/read-excel-file/issues/26\r\n// The inclusion of `xpath` package in `./xpathNode`\r\n// increases the bundle size by about 100 kilobytes.\r\n// IE11 is a wide-spread browser and it's unlikely that\r\n// anyone would ignore it for now.\r\n// There could be a separate export `read-excel-file/ie11`\r\n// for using `./xpathNode` instead of `./xpathBrowser`\r\n// but this library has been migrated to not using `xpath` anyway.\r\n// This code is just alternative/historical now, it seems.\r\nimport xpath from './xpathNode'\r\n\r\nconst namespaces = {\r\n a: 'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\r\n // This one seems to be for `r:id` attributes on `<sheet>`s.\r\n r: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\r\n // This one seems to be for `<Relationships/>` file.\r\n rr: 'http://schemas.openxmlformats.org/package/2006/relationships'\r\n}\r\n\r\nexport function getCellElements(document) {\r\n return xpath(document, null, '/a:worksheet/a:sheetData/a:row/a:c', namespaces)\r\n}\r\n\r\nexport function getMergedCellCoordinates(document) {\r\n return xpath(document, null, '/a:worksheet/a:mergedCells/a:mergedCell/@ref', namespaces)\r\n}\r\n\r\nexport function getCellValue(document, element) {\r\n return xpath(document, element, './a:v', namespaces)[0]\r\n}\r\n\r\nexport function getCellInlineStringValue(document, element) {\r\n return xpath(document, element, './a:is/a:t', namespaces)[0].textContent\r\n}\r\n\r\nexport function getDimensions(document) {\r\n const dimensions = xpath(document, null, '/a:worksheet/a:dimension/@ref', namespaces)[0]\r\n if (dimensions) {\r\n return dimensions.textContent\r\n }\r\n}\r\n\r\nexport function getBaseStyles(document) {\r\n return xpath(document, null, '/a:styleSheet/a:cellStyleXfs/a:xf', namespaces)\r\n}\r\n\r\nexport function getCellStyles(document) {\r\n return xpath(document, null, '/a:styleSheet/a:cellXfs/a:xf', namespaces)\r\n}\r\n\r\nexport function getNumberFormats(document) {\r\n return xpath(document, null, '/a:styleSheet/a:numFmts/a:numFmt', namespaces)\r\n}\r\n\r\nexport function getSharedStrings(document) {\r\n\t// An `<si/>` element can contain a `<t/>` (simplest case) or a set of `<r/>` (\"rich formatting\") elements having `<t/>`.\r\n\t// https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sharedstringitem?redirectedfrom=MSDN&view=openxml-2.8.1\r\n\t// http://www.datypic.com/sc/ooxml/e-ssml_si-1.html\r\n\r\n // The \".//a:t[not(ancestor::a:rPh)]\" selector means:\r\n // \"select all `<t/>` that are not children of `<rPh/>`\". \r\n\t// https://stackoverflow.com/questions/42773772/xpath-span-what-does-the-dot-mean\r\n // `<rPh><t></t></rPh>` seems to be some \"phonetic data\" added for languages like Japanese that should be ignored.\r\n // https://github.com/doy/spreadsheet-parsexlsx/issues/72\r\n return xpath(document, null, '/a:sst/a:si', namespaces)\r\n .map(string => xpath(document, string, './/a:t[not(ancestor::a:rPh)]', namespaces)\r\n .map(_ => _.textContent).join('')\r\n )\r\n}\r\n\r\nexport function getWorkbookProperties(document) {\r\n return xpath(document, null, '/a:workbook/a:workbookPr', namespaces)[0]\r\n}\r\n\r\nexport function getRelationships(document) {\r\n return xpath(document, null, '/rr:Relationships/rr:Relationship', namespaces)\r\n}\r\n\r\nexport function getSheets(document) {\r\n return xpath(document, null, '/a:workbook/a:sheets/a:sheet', namespaces)\r\n}"],"mappings":";;;;;;;;;;;;;;;;;AAYA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA+B,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAZ/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,IAAME,UAAU,GAAG;EACjBC,CAAC,EAAE,2DAA2D;EAC9D;EACAC,CAAC,EAAE,qEAAqE;EACxE;EACAC,EAAE,EAAE;AACN,CAAC;AAEM,SAASC,eAAeA,CAACC,QAAQ,EAAE;EACxC,OAAO,IAAAC,qBAAK,EAACD,QAAQ,EAAE,IAAI,EAAE,oCAAoC,EAAEL,UAAU,CAAC;AAChF;AAEO,SAASO,wBAAwBA,CAACF,QAAQ,EAAE;EACjD,OAAO,IAAAC,qBAAK,EAACD,QAAQ,EAAE,IAAI,EAAE,8CAA8C,EAAEL,UAAU,CAAC;AAC1F;AAEO,SAASQ,YAAYA,CAACH,QAAQ,EAAEI,OAAO,EAAE;EAC9C,OAAO,IAAAH,qBAAK,EAACD,QAAQ,EAAEI,OAAO,EAAE,OAAO,EAAET,UAAU,CAAC,CAAC,CAAC,CAAC;AACzD;AAEO,SAASU,wBAAwBA,CAACL,QAAQ,EAAEI,OAAO,EAAE;EAC1D,OAAO,IAAAH,qBAAK,EAACD,QAAQ,EAAEI,OAAO,EAAE,YAAY,EAAET,UAAU,CAAC,CAAC,CAAC,CAAC,CAACW,WAAW;AAC1E;AAEO,SAASC,aAAaA,CAACP,QAAQ,EAAE;EACtC,IAAMQ,UAAU,GAAG,IAAAP,qBAAK,EAACD,QAAQ,EAAE,IAAI,EAAE,+BAA+B,EAAEL,UAAU,CAAC,CAAC,CAAC,CAAC;EACxF,IAAIa,UAAU,EAAE;IACd,OAAOA,UAAU,CAACF,WAAW;EAC/B;AACF;AAEO,SAASG,aAAaA,CAACT,QAAQ,EAAE;EACtC,OAAO,IAAAC,qBAAK,EAACD,QAAQ,EAAE,IAAI,EAAE,mCAAmC,EAAEL,UAAU,CAAC;AAC/E;AAEO,SAASe,aAAaA,CAACV,QAAQ,EAAE;EACtC,OAAO,IAAAC,qBAAK,EAACD,QAAQ,EAAE,IAAI,EAAE,8BAA8B,EAAEL,UAAU,CAAC;AAC1E;AAEO,SAASgB,gBAAgBA,CAACX,QAAQ,EAAE;EACzC,OAAO,IAAAC,qBAAK,EAACD,QAAQ,EAAE,IAAI,EAAE,kCAAkC,EAAEL,UAAU,CAAC;AAC9E;AAEO,SAASiB,gBAAgBA,CAACZ,QAAQ,EAAE;EAC1C;EACA;EACA;;EAEC;EACA;EACD;EACC;EACA;EACA,OAAO,IAAAC,qBAAK,EAACD,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAEL,UAAU,CAAC,CACpDkB,GAAG,CAAC,UAAAC,MAAM;IAAA,OAAI,IAAAb,qBAAK,EAACD,QAAQ,EAAEc,MAAM,EAAE,8BAA8B,EAAEnB,UAAU,CAAC,CAC7EkB,GAAG,CAAC,UAAAE,CAAC;MAAA,OAAIA,CAAC,CAACT,WAAW;IAAA,EAAC,CAACU,IAAI,CAAC,EAAE,CAAC;EAAA,CACrC,CAAC;AACL;AAEO,SAASC,qBAAqBA,CAACjB,QAAQ,EAAE;EAC9C,OAAO,IAAAC,qBAAK,EAACD,QAAQ,EAAE,IAAI,EAAE,0BAA0B,EAAEL,UAAU,CAAC,CAAC,CAAC,CAAC;AACzE;AAEO,SAASuB,gBAAgBA,CAAClB,QAAQ,EAAE;EACzC,OAAO,IAAAC,qBAAK,EAACD,QAAQ,EAAE,IAAI,EAAE,mCAAmC,EAAEL,UAAU,CAAC;AAC/E;AAEO,SAASwB,SAASA,CAACnB,QAAQ,EAAE;EAClC,OAAO,IAAAC,qBAAK,EAACD,QAAQ,EAAE,IAAI,EAAE,8BAA8B,EAAEL,UAAU,CAAC;AAC1E"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = xpath;
|
|
7
|
-
// This file is no longer used.
|
|
8
|
-
|
|
9
|
-
// Turns out IE11 doesn't support XPath, so not using `./xpathBrowser` for browsers.
|
|
10
|
-
// https://github.com/catamphetamine/read-excel-file/issues/26
|
|
11
|
-
// The inclusion of `xpath` package in `./xpathNode`
|
|
12
|
-
// increases the bundle size by about 100 kilobytes.
|
|
13
|
-
// IE11 is a wide-spread browser and it's unlikely that
|
|
14
|
-
// anyone would ignore it for now.
|
|
15
|
-
// There could be a separate export `read-excel-file/ie11`
|
|
16
|
-
// for using `./xpathNode` instead of `./xpathBrowser`
|
|
17
|
-
// but this library has been migrated to not using `xpath` anyway.
|
|
18
|
-
// This code is just alternative/historical now, it seems.
|
|
19
|
-
function xpath(document, element, path) {
|
|
20
|
-
var namespaces = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
21
|
-
var elements = document.evaluate(path, element || document, function (prefix) {
|
|
22
|
-
return namespaces[prefix];
|
|
23
|
-
}, XPathResult.ANY_TYPE, null);
|
|
24
|
-
// Convert iterator to an array.
|
|
25
|
-
var results = [];
|
|
26
|
-
var result = elements.iterateNext();
|
|
27
|
-
while (result) {
|
|
28
|
-
results.push(result);
|
|
29
|
-
result = elements.iterateNext();
|
|
30
|
-
}
|
|
31
|
-
return results;
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=xpathBrowser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"xpathBrowser.js","names":["xpath","document","element","path","namespaces","arguments","length","undefined","elements","evaluate","prefix","XPathResult","ANY_TYPE","results","result","iterateNext","push"],"sources":["../../../source/xml/xpath/xpathBrowser.js"],"sourcesContent":["// This file is no longer used.\r\n\r\n// Turns out IE11 doesn't support XPath, so not using `./xpathBrowser` for browsers.\r\n// https://github.com/catamphetamine/read-excel-file/issues/26\r\n// The inclusion of `xpath` package in `./xpathNode`\r\n// increases the bundle size by about 100 kilobytes.\r\n// IE11 is a wide-spread browser and it's unlikely that\r\n// anyone would ignore it for now.\r\n// There could be a separate export `read-excel-file/ie11`\r\n// for using `./xpathNode` instead of `./xpathBrowser`\r\n// but this library has been migrated to not using `xpath` anyway.\r\n// This code is just alternative/historical now, it seems.\r\nexport default function xpath(document, element, path, namespaces = {}) {\r\n\tconst elements = document.evaluate(\r\n\t\tpath,\r\n\t\telement || document,\r\n\t\tprefix => namespaces[prefix],\r\n\t\tXPathResult.ANY_TYPE,\r\n\t\tnull\r\n\t)\r\n\t// Convert iterator to an array.\r\n\tconst results = []\r\n\tlet result = elements.iterateNext()\r\n\twhile (result) {\r\n\t\tresults.push(result)\r\n\t\tresult = elements.iterateNext()\r\n\t}\r\n\treturn results\r\n}"],"mappings":";;;;;;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,KAAKA,CAACC,QAAQ,EAAEC,OAAO,EAAEC,IAAI,EAAmB;EAAA,IAAjBC,UAAU,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACrE,IAAMG,QAAQ,GAAGP,QAAQ,CAACQ,QAAQ,CACjCN,IAAI,EACJD,OAAO,IAAID,QAAQ,EACnB,UAAAS,MAAM;IAAA,OAAIN,UAAU,CAACM,MAAM,CAAC;EAAA,GAC5BC,WAAW,CAACC,QAAQ,EACpB,IACD,CAAC;EACD;EACA,IAAMC,OAAO,GAAG,EAAE;EAClB,IAAIC,MAAM,GAAGN,QAAQ,CAACO,WAAW,CAAC,CAAC;EACnC,OAAOD,MAAM,EAAE;IACdD,OAAO,CAACG,IAAI,CAACF,MAAM,CAAC;IACpBA,MAAM,GAAGN,QAAQ,CAACO,WAAW,CAAC,CAAC;EAChC;EACA,OAAOF,OAAO;AACf"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = _default;
|
|
7
|
-
var _xpath = _interopRequireDefault(require("xpath"));
|
|
8
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
9
|
-
// This file is no longer used.
|
|
10
|
-
|
|
11
|
-
function _default(document, element, path) {
|
|
12
|
-
var namespaces = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
13
|
-
var select = _xpath["default"].useNamespaces(namespaces);
|
|
14
|
-
return select(path, element || document);
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=xpathNode.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"xpathNode.js","names":["_xpath","_interopRequireDefault","require","obj","__esModule","_default","document","element","path","namespaces","arguments","length","undefined","select","xpath","useNamespaces"],"sources":["../../../source/xml/xpath/xpathNode.js"],"sourcesContent":["// This file is no longer used.\r\n\r\nimport xpath from 'xpath'\r\n\r\nexport default function(document, element, path, namespaces = {}) {\r\n\tconst select = xpath.useNamespaces(namespaces)\r\n\treturn select(path, element || document)\r\n}"],"mappings":";;;;;;AAEA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAyB,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAFzB;;AAIe,SAAAE,SAASC,QAAQ,EAAEC,OAAO,EAAEC,IAAI,EAAmB;EAAA,IAAjBC,UAAU,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAC/D,IAAMG,MAAM,GAAGC,iBAAK,CAACC,aAAa,CAACN,UAAU,CAAC;EAC9C,OAAOI,MAAM,CAACL,IAAI,EAAED,OAAO,IAAID,QAAQ,CAAC;AACzC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseCellCoordinates.js","names":["parseCellCoordinates","coordinatesString","_coordinatesString$sp","split","_coordinatesString$sp2","_slicedToArray","column","row","Number","getColumnNumberFromColumnLetters","trim","LETTERS","columnLetters","n","i","length","indexOf"],"sources":["../../source/xlsx/parseCellCoordinates.js"],"sourcesContent":["export default function parseCellCoordinates(coordinatesString) {\r\n // Coordinate examples: \"AA2091\", \"R988\", \"B1\".\r\n const [column, row] = coordinatesString.split(/(\\d+)/)\r\n return [\r\n // Row.\r\n Number(row),\r\n // Column.\r\n\t\t// It's not clear why would `column` ever be non-trimmed,\r\n\t\t// but if it was added here then perhaps it could hypothetically happen, or smth.\r\n getColumnNumberFromColumnLetters(column.trim())\r\n ]\r\n}\r\n\r\n// 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\n// Converts a letter coordinate to a digit coordinate.\r\n// Examples: \"A\" -> 1, \"B\" -> 2, \"Z\" -> 26, \"AA\" -> 27, etc.\r\nfunction getColumnNumberFromColumnLetters(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"],"mappings":";;;;;;AAAA,eAAe,SAASA,oBAAoBA,CAACC,iBAAiB,EAAE;EAC9D;EACA,IAAAC,qBAAA,GAAsBD,iBAAiB,CAACE,KAAK,CAAC,OAAO,CAAC;IAAAC,sBAAA,GAAAC,cAAA,CAAAH,qBAAA;IAA/CI,MAAM,GAAAF,sBAAA;IAAEG,GAAG,GAAAH,sBAAA;EAClB,OAAO;EACL;EACAI,MAAM,CAACD,GAAG,CAAC;EACX;EACF;EACA;EACEE,gCAAgC,CAACH,MAAM,CAACI,IAAI,CAAC,CAAC,CAAC,CAChD;AACH;;AAEA;AACA,IAAMC,OAAO,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;;AAEtJ;AACA;AACA,SAASF,gCAAgCA,CAACG,aAAa,EAAE;EACvD;EACA,IAAIC,CAAC,GAAG,CAAC;EACT,IAAIC,CAAC,GAAG,CAAC;EACT,OAAOA,CAAC,GAAGF,aAAa,CAACG,MAAM,EAAE;IAC/BF,CAAC,IAAI,EAAE;IACPA,CAAC,IAAIF,OAAO,CAACK,OAAO,CAACJ,aAAa,CAACE,CAAC,CAAC,CAAC;IACtCA,CAAC,EAAE;EACL;EACA,OAAOD,CAAC;AACV"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { getCellElements } from '../xml/xlsx.js';
|
|
2
|
-
import parseCell from './parseCell.js';
|
|
3
|
-
export default function parseCells(sheetDocument, sharedStrings, styles, epoch1904, options) {
|
|
4
|
-
var cells = getCellElements(sheetDocument);
|
|
5
|
-
if (cells.length === 0) {
|
|
6
|
-
return [];
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
// It seems like the idea of parsing "merged cells" was abandoned without being finished.
|
|
10
|
-
// Here, it seems to just get to the stage of parsing merged cell coordinates.
|
|
11
|
-
// Perhaps it's because it's not clear how would the package return merged cell results.
|
|
12
|
-
// I.e. should it just duplicate the value in each one of the merged cells?
|
|
13
|
-
// Or should it keep the existing behavior of only returning the value of the top-most left-most cell
|
|
14
|
-
// and then return `null` for the other ones?
|
|
15
|
-
// Perhaps the latter (existing) approach was found to be the most sensible.
|
|
16
|
-
//
|
|
17
|
-
// const mergedCells = getMergedCellCoordinates(sheetDocument)
|
|
18
|
-
// for (const mergedCell of mergedCells) {
|
|
19
|
-
// const [from, to] = mergedCell.split(':').map(parseCellCoordinates)
|
|
20
|
-
// console.log('Merged Cell.', 'From:', from, 'To:', to)
|
|
21
|
-
// }
|
|
22
|
-
|
|
23
|
-
return cells.map(function (element) {
|
|
24
|
-
return parseCell(element, sheetDocument, sharedStrings, styles, epoch1904, options);
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=parseCells.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseCells.js","names":["getCellElements","parseCell","parseCells","sheetDocument","sharedStrings","styles","epoch1904","options","cells","length","map","element"],"sources":["../../source/xlsx/parseCells.js"],"sourcesContent":["import { getCellElements } from '../xml/xlsx.js'\r\n\r\nimport parseCell from './parseCell.js'\r\n\r\nexport default function parseCells(sheetDocument, sharedStrings, styles, epoch1904, options) {\r\n const cells = getCellElements(sheetDocument)\r\n\r\n if (cells.length === 0) {\r\n return []\r\n }\r\n\r\n // It seems like the idea of parsing \"merged cells\" was abandoned without being finished.\r\n // Here, it seems to just get to the stage of parsing merged cell coordinates.\r\n // Perhaps it's because it's not clear how would the package return merged cell results.\r\n // I.e. should it just duplicate the value in each one of the merged cells?\r\n // Or should it keep the existing behavior of only returning the value of the top-most left-most cell\r\n // and then return `null` for the other ones?\r\n // Perhaps the latter (existing) approach was found to be the most sensible.\r\n //\r\n // const mergedCells = getMergedCellCoordinates(sheetDocument)\r\n // for (const mergedCell of mergedCells) {\r\n // const [from, to] = mergedCell.split(':').map(parseCellCoordinates)\r\n // console.log('Merged Cell.', 'From:', from, 'To:', to)\r\n // }\r\n\r\n return cells.map((element) => {\r\n return parseCell(element, sheetDocument, sharedStrings, styles, epoch1904, options)\r\n })\r\n}"],"mappings":"AAAA,SAASA,eAAe,QAAQ,gBAAgB;AAEhD,OAAOC,SAAS,MAAM,gBAAgB;AAEtC,eAAe,SAASC,UAAUA,CAACC,aAAa,EAAEC,aAAa,EAAEC,MAAM,EAAEC,SAAS,EAAEC,OAAO,EAAE;EAC3F,IAAMC,KAAK,GAAGR,eAAe,CAACG,aAAa,CAAC;EAE5C,IAAIK,KAAK,CAACC,MAAM,KAAK,CAAC,EAAE;IACtB,OAAO,EAAE;EACX;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA,OAAOD,KAAK,CAACE,GAAG,CAAC,UAACC,OAAO,EAAK;IAC5B,OAAOV,SAAS,CAACU,OAAO,EAAER,aAAa,EAAEC,aAAa,EAAEC,MAAM,EAAEC,SAAS,EAAEC,OAAO,CAAC;EACrF,CAAC,CAAC;AACJ"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
5
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
-
import parseCellCoordinates from './parseCellCoordinates.js';
|
|
8
|
-
import { getDimensions } from '../xml/xlsx.js';
|
|
9
|
-
|
|
10
|
-
// `dimensions` defines the spreadsheet area containing all non-empty cells.
|
|
11
|
-
// https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sheetdimension?view=openxml-2.8.1
|
|
12
|
-
export default function parseSheetDimensions(sheetDocument) {
|
|
13
|
-
var dimensions = getDimensions(sheetDocument);
|
|
14
|
-
if (dimensions) {
|
|
15
|
-
dimensions = dimensions.split(':').map(parseCellCoordinates).map(function (_ref) {
|
|
16
|
-
var _ref2 = _slicedToArray(_ref, 2),
|
|
17
|
-
row = _ref2[0],
|
|
18
|
-
column = _ref2[1];
|
|
19
|
-
return {
|
|
20
|
-
row: row,
|
|
21
|
-
column: column
|
|
22
|
-
};
|
|
23
|
-
});
|
|
24
|
-
// Sometimes there can be just a single cell as a spreadsheet's "dimensions".
|
|
25
|
-
// For example, the default "dimensions" in Apache POI library is "A1",
|
|
26
|
-
// meaning that only the first cell in the spreadsheet is used.
|
|
27
|
-
//
|
|
28
|
-
// A quote from Apache POI library:
|
|
29
|
-
// "Single cell ranges are formatted like single cell references (e.g. 'A1' instead of 'A1:A1')."
|
|
30
|
-
//
|
|
31
|
-
if (dimensions.length === 1) {
|
|
32
|
-
dimensions = [dimensions[0], dimensions[0]];
|
|
33
|
-
}
|
|
34
|
-
return dimensions;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=parseSheetDimensions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseSheetDimensions.js","names":["parseCellCoordinates","getDimensions","parseSheetDimensions","sheetDocument","dimensions","split","map","_ref","_ref2","_slicedToArray","row","column","length"],"sources":["../../source/xlsx/parseSheetDimensions.js"],"sourcesContent":["import parseCellCoordinates from './parseCellCoordinates.js'\r\n\r\nimport { getDimensions } from '../xml/xlsx.js'\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 parseSheetDimensions(sheetDocument) {\r\n let dimensions = getDimensions(sheetDocument)\r\n if (dimensions) {\r\n dimensions = dimensions.split(':').map(parseCellCoordinates).map(([row, column]) => ({\r\n row,\r\n column\r\n }))\r\n // Sometimes there can be just a single cell as a spreadsheet's \"dimensions\".\r\n // For example, the default \"dimensions\" in Apache POI library is \"A1\",\r\n // meaning that only the first cell in the spreadsheet is used.\r\n //\r\n // A quote from Apache POI library:\r\n // \"Single cell ranges are formatted like single cell references (e.g. 'A1' instead of 'A1:A1').\"\r\n //\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"],"mappings":";;;;;;AAAA,OAAOA,oBAAoB,MAAM,2BAA2B;AAE5D,SAASC,aAAa,QAAQ,gBAAgB;;AAE9C;AACA;AACA,eAAe,SAASC,oBAAoBA,CAACC,aAAa,EAAE;EAC1D,IAAIC,UAAU,GAAGH,aAAa,CAACE,aAAa,CAAC;EAC7C,IAAIC,UAAU,EAAE;IACdA,UAAU,GAAGA,UAAU,CAACC,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAACN,oBAAoB,CAAC,CAACM,GAAG,CAAC,UAAAC,IAAA;MAAA,IAAAC,KAAA,GAAAC,cAAA,CAAAF,IAAA;QAAEG,GAAG,GAAAF,KAAA;QAAEG,MAAM,GAAAH,KAAA;MAAA,OAAO;QACnFE,GAAG,EAAHA,GAAG;QACHC,MAAM,EAANA;MACF,CAAC;IAAA,CAAC,CAAC;IACH;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAIP,UAAU,CAACQ,MAAM,KAAK,CAAC,EAAE;MAC3BR,UAAU,GAAG,CAACA,UAAU,CAAC,CAAC,CAAC,EAAEA,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7C;IACA,OAAOA,UAAU;EACnB;AACF"}
|
package/modules/xml/xml.js
DELETED
package/modules/xml/xml.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"xml.js","names":["DOMParser","createDocument","content","parseFromString"],"sources":["../../source/xml/xml.js"],"sourcesContent":["import { DOMParser } from '@xmldom/xmldom'\r\n\r\nexport default {\r\n\tcreateDocument(content) {\r\n\t\treturn new DOMParser().parseFromString(content, 'text/xml')\r\n\t}\r\n}"],"mappings":"AAAA,SAASA,SAAS,QAAQ,gBAAgB;AAE1C,eAAe;EACdC,cAAc,WAAAA,eAACC,OAAO,EAAE;IACvB,OAAO,IAAIF,SAAS,CAAC,CAAC,CAACG,eAAe,CAACD,OAAO,EAAE,UAAU,CAAC;EAC5D;AACD,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export default {
|
|
2
|
-
createDocument: function createDocument(content) {
|
|
3
|
-
// if (!content) {
|
|
4
|
-
// throw new Error('No *.xml content')
|
|
5
|
-
// }
|
|
6
|
-
// A weird bug: it won't parse XML unless it's trimmed.
|
|
7
|
-
// https://github.com/catamphetamine/read-excel-file/issues/21
|
|
8
|
-
return new DOMParser().parseFromString(content.trim(), 'text/xml');
|
|
9
|
-
}
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=xmlBrowser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"xmlBrowser.js","names":["createDocument","content","DOMParser","parseFromString","trim"],"sources":["../../source/xml/xmlBrowser.js"],"sourcesContent":["export default {\r\n\tcreateDocument(content) {\r\n\t\t// if (!content) {\r\n\t\t// \tthrow new Error('No *.xml content')\r\n\t\t// }\r\n\t\t// A weird bug: it won't parse XML unless it's trimmed.\r\n\t\t// https://github.com/catamphetamine/read-excel-file/issues/21\r\n\t\treturn new DOMParser().parseFromString(content.trim(), 'text/xml')\r\n\t}\r\n}"],"mappings":"AAAA,eAAe;EACdA,cAAc,WAAAA,eAACC,OAAO,EAAE;IACvB;IACA;IACA;IACA;IACA;IACA,OAAO,IAAIC,SAAS,CAAC,CAAC,CAACC,eAAe,CAACF,OAAO,CAACG,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC;EACnE;AACD,CAAC"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
// This file is no longer used.
|
|
2
|
-
|
|
3
|
-
// Turns out IE11 doesn't support XPath, so not using `./xpathBrowser` for browsers.
|
|
4
|
-
// https://github.com/catamphetamine/read-excel-file/issues/26
|
|
5
|
-
// The inclusion of `xpath` package in `./xpathNode`
|
|
6
|
-
// increases the bundle size by about 100 kilobytes.
|
|
7
|
-
// IE11 is a wide-spread browser and it's unlikely that
|
|
8
|
-
// anyone would ignore it for now.
|
|
9
|
-
// There could be a separate export `read-excel-file/ie11`
|
|
10
|
-
// for using `./xpathNode` instead of `./xpathBrowser`
|
|
11
|
-
// but this library has been migrated to not using `xpath` anyway.
|
|
12
|
-
// This code is just alternative/historical now, it seems.
|
|
13
|
-
import xpath from './xpathNode';
|
|
14
|
-
var namespaces = {
|
|
15
|
-
a: 'http://schemas.openxmlformats.org/spreadsheetml/2006/main',
|
|
16
|
-
// This one seems to be for `r:id` attributes on `<sheet>`s.
|
|
17
|
-
r: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',
|
|
18
|
-
// This one seems to be for `<Relationships/>` file.
|
|
19
|
-
rr: 'http://schemas.openxmlformats.org/package/2006/relationships'
|
|
20
|
-
};
|
|
21
|
-
export function getCellElements(document) {
|
|
22
|
-
return xpath(document, null, '/a:worksheet/a:sheetData/a:row/a:c', namespaces);
|
|
23
|
-
}
|
|
24
|
-
export function getMergedCellCoordinates(document) {
|
|
25
|
-
return xpath(document, null, '/a:worksheet/a:mergedCells/a:mergedCell/@ref', namespaces);
|
|
26
|
-
}
|
|
27
|
-
export function getCellValue(document, element) {
|
|
28
|
-
return xpath(document, element, './a:v', namespaces)[0];
|
|
29
|
-
}
|
|
30
|
-
export function getCellInlineStringValue(document, element) {
|
|
31
|
-
return xpath(document, element, './a:is/a:t', namespaces)[0].textContent;
|
|
32
|
-
}
|
|
33
|
-
export function getDimensions(document) {
|
|
34
|
-
var dimensions = xpath(document, null, '/a:worksheet/a:dimension/@ref', namespaces)[0];
|
|
35
|
-
if (dimensions) {
|
|
36
|
-
return dimensions.textContent;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
export function getBaseStyles(document) {
|
|
40
|
-
return xpath(document, null, '/a:styleSheet/a:cellStyleXfs/a:xf', namespaces);
|
|
41
|
-
}
|
|
42
|
-
export function getCellStyles(document) {
|
|
43
|
-
return xpath(document, null, '/a:styleSheet/a:cellXfs/a:xf', namespaces);
|
|
44
|
-
}
|
|
45
|
-
export function getNumberFormats(document) {
|
|
46
|
-
return xpath(document, null, '/a:styleSheet/a:numFmts/a:numFmt', namespaces);
|
|
47
|
-
}
|
|
48
|
-
export function getSharedStrings(document) {
|
|
49
|
-
// An `<si/>` element can contain a `<t/>` (simplest case) or a set of `<r/>` ("rich formatting") elements having `<t/>`.
|
|
50
|
-
// https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sharedstringitem?redirectedfrom=MSDN&view=openxml-2.8.1
|
|
51
|
-
// http://www.datypic.com/sc/ooxml/e-ssml_si-1.html
|
|
52
|
-
|
|
53
|
-
// The ".//a:t[not(ancestor::a:rPh)]" selector means:
|
|
54
|
-
// "select all `<t/>` that are not children of `<rPh/>`".
|
|
55
|
-
// https://stackoverflow.com/questions/42773772/xpath-span-what-does-the-dot-mean
|
|
56
|
-
// `<rPh><t></t></rPh>` seems to be some "phonetic data" added for languages like Japanese that should be ignored.
|
|
57
|
-
// https://github.com/doy/spreadsheet-parsexlsx/issues/72
|
|
58
|
-
return xpath(document, null, '/a:sst/a:si', namespaces).map(function (string) {
|
|
59
|
-
return xpath(document, string, './/a:t[not(ancestor::a:rPh)]', namespaces).map(function (_) {
|
|
60
|
-
return _.textContent;
|
|
61
|
-
}).join('');
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
export function getWorkbookProperties(document) {
|
|
65
|
-
return xpath(document, null, '/a:workbook/a:workbookPr', namespaces)[0];
|
|
66
|
-
}
|
|
67
|
-
export function getRelationships(document) {
|
|
68
|
-
return xpath(document, null, '/rr:Relationships/rr:Relationship', namespaces);
|
|
69
|
-
}
|
|
70
|
-
export function getSheets(document) {
|
|
71
|
-
return xpath(document, null, '/a:workbook/a:sheets/a:sheet', namespaces);
|
|
72
|
-
}
|
|
73
|
-
//# sourceMappingURL=xlsx-xpath.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"xlsx-xpath.js","names":["xpath","namespaces","a","r","rr","getCellElements","document","getMergedCellCoordinates","getCellValue","element","getCellInlineStringValue","textContent","getDimensions","dimensions","getBaseStyles","getCellStyles","getNumberFormats","getSharedStrings","map","string","_","join","getWorkbookProperties","getRelationships","getSheets"],"sources":["../../../source/xml/xpath/xlsx-xpath.js"],"sourcesContent":["// This file is no longer used.\r\n\r\n// Turns out IE11 doesn't support XPath, so not using `./xpathBrowser` for browsers.\r\n// https://github.com/catamphetamine/read-excel-file/issues/26\r\n// The inclusion of `xpath` package in `./xpathNode`\r\n// increases the bundle size by about 100 kilobytes.\r\n// IE11 is a wide-spread browser and it's unlikely that\r\n// anyone would ignore it for now.\r\n// There could be a separate export `read-excel-file/ie11`\r\n// for using `./xpathNode` instead of `./xpathBrowser`\r\n// but this library has been migrated to not using `xpath` anyway.\r\n// This code is just alternative/historical now, it seems.\r\nimport xpath from './xpathNode'\r\n\r\nconst namespaces = {\r\n a: 'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\r\n // This one seems to be for `r:id` attributes on `<sheet>`s.\r\n r: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\r\n // This one seems to be for `<Relationships/>` file.\r\n rr: 'http://schemas.openxmlformats.org/package/2006/relationships'\r\n}\r\n\r\nexport function getCellElements(document) {\r\n return xpath(document, null, '/a:worksheet/a:sheetData/a:row/a:c', namespaces)\r\n}\r\n\r\nexport function getMergedCellCoordinates(document) {\r\n return xpath(document, null, '/a:worksheet/a:mergedCells/a:mergedCell/@ref', namespaces)\r\n}\r\n\r\nexport function getCellValue(document, element) {\r\n return xpath(document, element, './a:v', namespaces)[0]\r\n}\r\n\r\nexport function getCellInlineStringValue(document, element) {\r\n return xpath(document, element, './a:is/a:t', namespaces)[0].textContent\r\n}\r\n\r\nexport function getDimensions(document) {\r\n const dimensions = xpath(document, null, '/a:worksheet/a:dimension/@ref', namespaces)[0]\r\n if (dimensions) {\r\n return dimensions.textContent\r\n }\r\n}\r\n\r\nexport function getBaseStyles(document) {\r\n return xpath(document, null, '/a:styleSheet/a:cellStyleXfs/a:xf', namespaces)\r\n}\r\n\r\nexport function getCellStyles(document) {\r\n return xpath(document, null, '/a:styleSheet/a:cellXfs/a:xf', namespaces)\r\n}\r\n\r\nexport function getNumberFormats(document) {\r\n return xpath(document, null, '/a:styleSheet/a:numFmts/a:numFmt', namespaces)\r\n}\r\n\r\nexport function getSharedStrings(document) {\r\n\t// An `<si/>` element can contain a `<t/>` (simplest case) or a set of `<r/>` (\"rich formatting\") elements having `<t/>`.\r\n\t// https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sharedstringitem?redirectedfrom=MSDN&view=openxml-2.8.1\r\n\t// http://www.datypic.com/sc/ooxml/e-ssml_si-1.html\r\n\r\n // The \".//a:t[not(ancestor::a:rPh)]\" selector means:\r\n // \"select all `<t/>` that are not children of `<rPh/>`\". \r\n\t// https://stackoverflow.com/questions/42773772/xpath-span-what-does-the-dot-mean\r\n // `<rPh><t></t></rPh>` seems to be some \"phonetic data\" added for languages like Japanese that should be ignored.\r\n // https://github.com/doy/spreadsheet-parsexlsx/issues/72\r\n return xpath(document, null, '/a:sst/a:si', namespaces)\r\n .map(string => xpath(document, string, './/a:t[not(ancestor::a:rPh)]', namespaces)\r\n .map(_ => _.textContent).join('')\r\n )\r\n}\r\n\r\nexport function getWorkbookProperties(document) {\r\n return xpath(document, null, '/a:workbook/a:workbookPr', namespaces)[0]\r\n}\r\n\r\nexport function getRelationships(document) {\r\n return xpath(document, null, '/rr:Relationships/rr:Relationship', namespaces)\r\n}\r\n\r\nexport function getSheets(document) {\r\n return xpath(document, null, '/a:workbook/a:sheets/a:sheet', namespaces)\r\n}"],"mappings":"AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,KAAK,MAAM,aAAa;AAE/B,IAAMC,UAAU,GAAG;EACjBC,CAAC,EAAE,2DAA2D;EAC9D;EACAC,CAAC,EAAE,qEAAqE;EACxE;EACAC,EAAE,EAAE;AACN,CAAC;AAED,OAAO,SAASC,eAAeA,CAACC,QAAQ,EAAE;EACxC,OAAON,KAAK,CAACM,QAAQ,EAAE,IAAI,EAAE,oCAAoC,EAAEL,UAAU,CAAC;AAChF;AAEA,OAAO,SAASM,wBAAwBA,CAACD,QAAQ,EAAE;EACjD,OAAON,KAAK,CAACM,QAAQ,EAAE,IAAI,EAAE,8CAA8C,EAAEL,UAAU,CAAC;AAC1F;AAEA,OAAO,SAASO,YAAYA,CAACF,QAAQ,EAAEG,OAAO,EAAE;EAC9C,OAAOT,KAAK,CAACM,QAAQ,EAAEG,OAAO,EAAE,OAAO,EAAER,UAAU,CAAC,CAAC,CAAC,CAAC;AACzD;AAEA,OAAO,SAASS,wBAAwBA,CAACJ,QAAQ,EAAEG,OAAO,EAAE;EAC1D,OAAOT,KAAK,CAACM,QAAQ,EAAEG,OAAO,EAAE,YAAY,EAAER,UAAU,CAAC,CAAC,CAAC,CAAC,CAACU,WAAW;AAC1E;AAEA,OAAO,SAASC,aAAaA,CAACN,QAAQ,EAAE;EACtC,IAAMO,UAAU,GAAGb,KAAK,CAACM,QAAQ,EAAE,IAAI,EAAE,+BAA+B,EAAEL,UAAU,CAAC,CAAC,CAAC,CAAC;EACxF,IAAIY,UAAU,EAAE;IACd,OAAOA,UAAU,CAACF,WAAW;EAC/B;AACF;AAEA,OAAO,SAASG,aAAaA,CAACR,QAAQ,EAAE;EACtC,OAAON,KAAK,CAACM,QAAQ,EAAE,IAAI,EAAE,mCAAmC,EAAEL,UAAU,CAAC;AAC/E;AAEA,OAAO,SAASc,aAAaA,CAACT,QAAQ,EAAE;EACtC,OAAON,KAAK,CAACM,QAAQ,EAAE,IAAI,EAAE,8BAA8B,EAAEL,UAAU,CAAC;AAC1E;AAEA,OAAO,SAASe,gBAAgBA,CAACV,QAAQ,EAAE;EACzC,OAAON,KAAK,CAACM,QAAQ,EAAE,IAAI,EAAE,kCAAkC,EAAEL,UAAU,CAAC;AAC9E;AAEA,OAAO,SAASgB,gBAAgBA,CAACX,QAAQ,EAAE;EAC1C;EACA;EACA;;EAEC;EACA;EACD;EACC;EACA;EACA,OAAON,KAAK,CAACM,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAEL,UAAU,CAAC,CACpDiB,GAAG,CAAC,UAAAC,MAAM;IAAA,OAAInB,KAAK,CAACM,QAAQ,EAAEa,MAAM,EAAE,8BAA8B,EAAElB,UAAU,CAAC,CAC7EiB,GAAG,CAAC,UAAAE,CAAC;MAAA,OAAIA,CAAC,CAACT,WAAW;IAAA,EAAC,CAACU,IAAI,CAAC,EAAE,CAAC;EAAA,CACrC,CAAC;AACL;AAEA,OAAO,SAASC,qBAAqBA,CAAChB,QAAQ,EAAE;EAC9C,OAAON,KAAK,CAACM,QAAQ,EAAE,IAAI,EAAE,0BAA0B,EAAEL,UAAU,CAAC,CAAC,CAAC,CAAC;AACzE;AAEA,OAAO,SAASsB,gBAAgBA,CAACjB,QAAQ,EAAE;EACzC,OAAON,KAAK,CAACM,QAAQ,EAAE,IAAI,EAAE,mCAAmC,EAAEL,UAAU,CAAC;AAC/E;AAEA,OAAO,SAASuB,SAASA,CAAClB,QAAQ,EAAE;EAClC,OAAON,KAAK,CAACM,QAAQ,EAAE,IAAI,EAAE,8BAA8B,EAAEL,UAAU,CAAC;AAC1E"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
// This file is no longer used.
|
|
2
|
-
|
|
3
|
-
// Turns out IE11 doesn't support XPath, so not using `./xpathBrowser` for browsers.
|
|
4
|
-
// https://github.com/catamphetamine/read-excel-file/issues/26
|
|
5
|
-
// The inclusion of `xpath` package in `./xpathNode`
|
|
6
|
-
// increases the bundle size by about 100 kilobytes.
|
|
7
|
-
// IE11 is a wide-spread browser and it's unlikely that
|
|
8
|
-
// anyone would ignore it for now.
|
|
9
|
-
// There could be a separate export `read-excel-file/ie11`
|
|
10
|
-
// for using `./xpathNode` instead of `./xpathBrowser`
|
|
11
|
-
// but this library has been migrated to not using `xpath` anyway.
|
|
12
|
-
// This code is just alternative/historical now, it seems.
|
|
13
|
-
export default function xpath(document, element, path) {
|
|
14
|
-
var namespaces = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
15
|
-
var elements = document.evaluate(path, element || document, function (prefix) {
|
|
16
|
-
return namespaces[prefix];
|
|
17
|
-
}, XPathResult.ANY_TYPE, null);
|
|
18
|
-
// Convert iterator to an array.
|
|
19
|
-
var results = [];
|
|
20
|
-
var result = elements.iterateNext();
|
|
21
|
-
while (result) {
|
|
22
|
-
results.push(result);
|
|
23
|
-
result = elements.iterateNext();
|
|
24
|
-
}
|
|
25
|
-
return results;
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=xpathBrowser.js.map
|