read-excel-file 5.2.20 → 5.2.21

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.
@@ -49,16 +49,24 @@ function readXlsx(contents, xml) {
49
49
  options = _objectSpread({
50
50
  sheet: 1
51
51
  }, options);
52
- } // Some Excel editors don't want to use standard naming scheme for sheet files.
52
+ }
53
+
54
+ var getXmlFileContent = function getXmlFileContent(filePath) {
55
+ if (!contents[filePath]) {
56
+ throw new Error("\"".concat(filePath, "\" file not found inside the *.xlsx file zip archive"));
57
+ }
58
+
59
+ return contents[filePath];
60
+ }; // Some Excel editors don't want to use standard naming scheme for sheet files.
53
61
  // https://github.com/tidyverse/readxl/issues/104
54
62
 
55
63
 
56
- var filePaths = (0, _parseFilePaths["default"])(contents['xl/_rels/workbook.xml.rels'], xml); // Default file path for "shared strings": "xl/sharedStrings.xml".
64
+ var filePaths = (0, _parseFilePaths["default"])(getXmlFileContent('xl/_rels/workbook.xml.rels'), xml); // Default file path for "shared strings": "xl/sharedStrings.xml".
57
65
 
58
- var values = filePaths.sharedStrings ? (0, _parseSharedStrings["default"])(contents[filePaths.sharedStrings], xml) : []; // Default file path for "styles": "xl/styles.xml".
66
+ var values = filePaths.sharedStrings ? (0, _parseSharedStrings["default"])(getXmlFileContent(filePaths.sharedStrings), xml) : []; // Default file path for "styles": "xl/styles.xml".
59
67
 
60
- var styles = filePaths.styles ? (0, _parseStyles["default"])(contents[filePaths.styles], xml) : {};
61
- var properties = (0, _parseProperties["default"])(contents['xl/workbook.xml'], xml); // A feature for getting the list of sheets in an Excel file.
68
+ var styles = filePaths.styles ? (0, _parseStyles["default"])(getXmlFileContent(filePaths.styles), xml) : {};
69
+ var properties = (0, _parseProperties["default"])(getXmlFileContent('xl/workbook.xml'), xml); // A feature for getting the list of sheets in an Excel file.
62
70
  // https://github.com/catamphetamine/read-excel-file/issues/14
63
71
 
64
72
  if (options.getSheets) {
@@ -79,7 +87,7 @@ function readXlsx(contents, xml) {
79
87
  } // Parse sheet data.
80
88
 
81
89
 
82
- var sheet = (0, _parseSheet["default"])(contents[filePaths.sheets[sheetId]], xml, values, styles, properties, options); // Get spreadsheet data.
90
+ var sheet = (0, _parseSheet["default"])(getXmlFileContent(filePaths.sheets[sheetId]), xml, values, styles, properties, options); // Get spreadsheet data.
83
91
 
84
92
  var data = (0, _getData["default"])(sheet, options); // Can return properties, if required.
85
93
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../source/read/readXlsx.js"],"names":["readXlsx","contents","xml","options","sheet","filePaths","values","sharedStrings","styles","properties","getSheets","sheets","map","name","sheetId","getSheetId","createSheetNotFoundError","data","_sheet","relationId","sheetsList","i","join","Error"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,QAAT,CAAkBC,QAAlB,EAA4BC,GAA5B,EAA+C;AAAA,MAAdC,OAAc,uEAAJ,EAAI;;AAC5D,MAAI,CAACA,OAAO,CAACC,KAAb,EAAoB;AAClBD,IAAAA,OAAO;AACLC,MAAAA,KAAK,EAAE;AADF,OAEFD,OAFE,CAAP;AAID,GAN2D,CAQ5D;AACA;;;AACA,MAAME,SAAS,GAAG,gCAAeJ,QAAQ,CAAC,4BAAD,CAAvB,EAAuDC,GAAvD,CAAlB,CAV4D,CAY5D;;AACA,MAAMI,MAAM,GAAGD,SAAS,CAACE,aAAV,GACX,oCAAmBN,QAAQ,CAACI,SAAS,CAACE,aAAX,CAA3B,EAAsDL,GAAtD,CADW,GAEX,EAFJ,CAb4D,CAiB5D;;AACA,MAAMM,MAAM,GAAGH,SAAS,CAACG,MAAV,GACX,6BAAYP,QAAQ,CAACI,SAAS,CAACG,MAAX,CAApB,EAAwCN,GAAxC,CADW,GAEX,EAFJ;AAIA,MAAMO,UAAU,GAAG,iCAAgBR,QAAQ,CAAC,iBAAD,CAAxB,EAA6CC,GAA7C,CAAnB,CAtB4D,CAwB5D;AACA;;AACA,MAAIC,OAAO,CAACO,SAAZ,EAAuB;AACrB,WAAOD,UAAU,CAACE,MAAX,CAAkBC,GAAlB,CAAsB;AAAA,UAAGC,IAAH,QAAGA,IAAH;AAAA,aAAe;AAC1CA,QAAAA,IAAI,EAAJA;AAD0C,OAAf;AAAA,KAAtB,CAAP;AAGD,GA9B2D,CAgC5D;;;AACA,MAAMC,OAAO,GAAGC,UAAU,CAACZ,OAAO,CAACC,KAAT,EAAgBK,UAAU,CAACE,MAA3B,CAA1B,CAjC4D,CAmC5D;AACA;;AACA,MAAI,CAACG,OAAD,IAAY,CAACT,SAAS,CAACM,MAAV,CAAiBG,OAAjB,CAAjB,EAA4C;AAC1C,UAAME,wBAAwB,CAACb,OAAO,CAACC,KAAT,EAAgBK,UAAU,CAACE,MAA3B,CAA9B;AACD,GAvC2D,CAyC5D;;;AACA,MAAMP,KAAK,GAAG,4BACZH,QAAQ,CAACI,SAAS,CAACM,MAAV,CAAiBG,OAAjB,CAAD,CADI,EAEZZ,GAFY,EAGZI,MAHY,EAIZE,MAJY,EAKZC,UALY,EAMZN,OANY,CAAd,CA1C4D,CAmD5D;;AACA,MAAMc,IAAI,GAAG,yBAAQb,KAAR,EAAeD,OAAf,CAAb,CApD4D,CAsD5D;;AACA,MAAIA,OAAO,CAACM,UAAZ,EAAwB;AACtB,WAAO;AACLQ,MAAAA,IAAI,EAAJA,IADK;AAELR,MAAAA,UAAU,EAAVA;AAFK,KAAP;AAID,GA5D2D,CA8D5D;;;AACA,SAAOQ,IAAP;AACD;;AAED,SAASF,UAAT,CAAoBX,KAApB,EAA2BO,MAA3B,EAAmC;AACjC,MAAI,OAAOP,KAAP,KAAiB,QAArB,EAA+B;AAC7B,QAAMc,MAAM,GAAGP,MAAM,CAACP,KAAK,GAAG,CAAT,CAArB;AACA,WAAOc,MAAM,IAAIA,MAAM,CAACC,UAAxB;AACD;;AACD,uDAAqBR,MAArB,wCAA6B;AAAA,QAAlBO,OAAkB;;AAC3B,QAAIA,OAAM,CAACL,IAAP,KAAgBT,KAApB,EAA2B;AACzB,aAAOc,OAAM,CAACC,UAAd;AACD;AACF;AACF;;AAED,SAASH,wBAAT,CAAkCZ,KAAlC,EAAyCO,MAAzC,EAAiD;AAC/C,MAAMS,UAAU,GAAGT,MAAM,IAAIA,MAAM,CAACC,GAAP,CAAW,UAACR,KAAD,EAAQiB,CAAR;AAAA,uBAAkBjB,KAAK,CAACS,IAAxB,kBAAmCQ,CAAC,GAAG,CAAvC;AAAA,GAAX,EAAwDC,IAAxD,CAA6D,IAA7D,CAA7B;AACA,SAAO,IAAIC,KAAJ,iBAAmB,OAAOnB,KAAP,KAAiB,QAAjB,GAA4B,MAAMA,KAAlC,GAA0C,MAAMA,KAAN,GAAc,GAA3E,2CAA+GO,MAAM,GAAG,wBAAwBS,UAAxB,GAAqC,GAAxC,GAA8C,EAAnK,EAAP;AACD","sourcesContent":["import parseProperties from './parseProperties'\r\nimport parseFilePaths from './parseFilePaths'\r\nimport parseStyles from './parseStyles'\r\nimport parseSharedStrings from './parseSharedStrings'\r\nimport parseSheet from './parseSheet'\r\nimport getData from './getData'\r\n\r\n// For an introduction in reading `*.xlsx` files see \"The minimum viable XLSX reader\":\r\n// https://www.brendanlong.com/the-minimum-viable-xlsx-reader.html\r\n\r\n/**\r\n * Reads an (unzipped) XLSX file structure into a 2D array of cells.\r\n * @param {object} contents - A list of XML files inside XLSX file (which is a zipped directory).\r\n * @param {number?} options.sheet - Workbook sheet id (`1` by default).\r\n * @param {string?} options.dateFormat - Date format, e.g. \"mm/dd/yyyy\". Values having this format template set will be parsed as dates.\r\n * @param {object} contents - A list of XML files inside XLSX file (which is a zipped directory).\r\n * @return {object} An object of shape `{ data, cells, properties }`. `data: string[][]` is an array of rows, each row being an array of cell values. `cells: string[][]` is an array of rows, each row being an array of cells. `properties: object` is the spreadsheet properties (e.g. whether date epoch is 1904 instead of 1900).\r\n */\r\nexport default function readXlsx(contents, xml, options = {}) {\r\n if (!options.sheet) {\r\n options = {\r\n sheet: 1,\r\n ...options\r\n }\r\n }\r\n\r\n // Some Excel editors don't want to use standard naming scheme for sheet files.\r\n // https://github.com/tidyverse/readxl/issues/104\r\n const filePaths = parseFilePaths(contents['xl/_rels/workbook.xml.rels'], xml)\r\n\r\n // Default file path for \"shared strings\": \"xl/sharedStrings.xml\".\r\n const values = filePaths.sharedStrings\r\n ? parseSharedStrings(contents[filePaths.sharedStrings], xml)\r\n : []\r\n\r\n // Default file path for \"styles\": \"xl/styles.xml\".\r\n const styles = filePaths.styles\r\n ? parseStyles(contents[filePaths.styles], xml)\r\n : {}\r\n\r\n const properties = parseProperties(contents['xl/workbook.xml'], xml)\r\n\r\n // A feature for getting the list of sheets in an Excel file.\r\n // https://github.com/catamphetamine/read-excel-file/issues/14\r\n if (options.getSheets) {\r\n return properties.sheets.map(({ name }) => ({\r\n name\r\n }))\r\n }\r\n\r\n // Find the sheet by name, or take the first one.\r\n const sheetId = getSheetId(options.sheet, properties.sheets)\r\n\r\n // If the sheet wasn't found then throw an error.\r\n // Example: \"xl/worksheets/sheet1.xml\".\r\n if (!sheetId || !filePaths.sheets[sheetId]) {\r\n throw createSheetNotFoundError(options.sheet, properties.sheets)\r\n }\r\n\r\n // Parse sheet data.\r\n const sheet = parseSheet(\r\n contents[filePaths.sheets[sheetId]],\r\n xml,\r\n values,\r\n styles,\r\n properties,\r\n options\r\n )\r\n\r\n // Get spreadsheet data.\r\n const data = getData(sheet, options)\r\n\r\n // Can return properties, if required.\r\n if (options.properties) {\r\n return {\r\n data,\r\n properties\r\n }\r\n }\r\n\r\n // Return spreadsheet data.\r\n return data\r\n}\r\n\r\nfunction getSheetId(sheet, sheets) {\r\n if (typeof sheet === 'number') {\r\n const _sheet = sheets[sheet - 1]\r\n return _sheet && _sheet.relationId\r\n }\r\n for (const _sheet of sheets) {\r\n if (_sheet.name === sheet) {\r\n return _sheet.relationId\r\n }\r\n }\r\n}\r\n\r\nfunction createSheetNotFoundError(sheet, sheets) {\r\n const sheetsList = sheets && sheets.map((sheet, i) => `\"${sheet.name}\" (#${i + 1})`).join(', ')\r\n return new Error(`Sheet ${typeof sheet === 'number' ? '#' + sheet : '\"' + sheet + '\"'} not found in the *.xlsx file.${sheets ? ' Available sheets: ' + sheetsList + '.' : ''}`)\r\n}"],"file":"readXlsx.js"}
1
+ {"version":3,"sources":["../../source/read/readXlsx.js"],"names":["readXlsx","contents","xml","options","sheet","getXmlFileContent","filePath","Error","filePaths","values","sharedStrings","styles","properties","getSheets","sheets","map","name","sheetId","getSheetId","createSheetNotFoundError","data","_sheet","relationId","sheetsList","i","join"],"mappings":"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","sourcesContent":["import parseProperties from './parseProperties'\r\nimport parseFilePaths from './parseFilePaths'\r\nimport parseStyles from './parseStyles'\r\nimport parseSharedStrings from './parseSharedStrings'\r\nimport parseSheet from './parseSheet'\r\nimport getData from './getData'\r\n\r\n// For an introduction in reading `*.xlsx` files see \"The minimum viable XLSX reader\":\r\n// https://www.brendanlong.com/the-minimum-viable-xlsx-reader.html\r\n\r\n/**\r\n * Reads an (unzipped) XLSX file structure into a 2D array of cells.\r\n * @param {object} contents - A list of XML files inside XLSX file (which is a zipped directory).\r\n * @param {number?} options.sheet - Workbook sheet id (`1` by default).\r\n * @param {string?} options.dateFormat - Date format, e.g. \"mm/dd/yyyy\". Values having this format template set will be parsed as dates.\r\n * @param {object} contents - A list of XML files inside XLSX file (which is a zipped directory).\r\n * @return {object} An object of shape `{ data, cells, properties }`. `data: string[][]` is an array of rows, each row being an array of cell values. `cells: string[][]` is an array of rows, each row being an array of cells. `properties: object` is the spreadsheet properties (e.g. whether date epoch is 1904 instead of 1900).\r\n */\r\nexport default function readXlsx(contents, xml, options = {}) {\r\n if (!options.sheet) {\r\n options = {\r\n sheet: 1,\r\n ...options\r\n }\r\n }\r\n\r\n const getXmlFileContent = (filePath) => {\r\n if (!contents[filePath]) {\r\n throw new Error(`\"${filePath}\" file not found inside the *.xlsx file zip archive`)\r\n }\r\n return contents[filePath]\r\n }\r\n\r\n // Some Excel editors don't want to use standard naming scheme for sheet files.\r\n // https://github.com/tidyverse/readxl/issues/104\r\n const filePaths = parseFilePaths(getXmlFileContent('xl/_rels/workbook.xml.rels'), xml)\r\n\r\n // Default file path for \"shared strings\": \"xl/sharedStrings.xml\".\r\n const values = filePaths.sharedStrings\r\n ? parseSharedStrings(getXmlFileContent(filePaths.sharedStrings), xml)\r\n : []\r\n\r\n // Default file path for \"styles\": \"xl/styles.xml\".\r\n const styles = filePaths.styles\r\n ? parseStyles(getXmlFileContent(filePaths.styles), xml)\r\n : {}\r\n\r\n const properties = parseProperties(getXmlFileContent('xl/workbook.xml'), xml)\r\n\r\n // A feature for getting the list of sheets in an Excel file.\r\n // https://github.com/catamphetamine/read-excel-file/issues/14\r\n if (options.getSheets) {\r\n return properties.sheets.map(({ name }) => ({\r\n name\r\n }))\r\n }\r\n\r\n // Find the sheet by name, or take the first one.\r\n const sheetId = getSheetId(options.sheet, properties.sheets)\r\n\r\n // If the sheet wasn't found then throw an error.\r\n // Example: \"xl/worksheets/sheet1.xml\".\r\n if (!sheetId || !filePaths.sheets[sheetId]) {\r\n throw createSheetNotFoundError(options.sheet, properties.sheets)\r\n }\r\n\r\n // Parse sheet data.\r\n const sheet = parseSheet(\r\n getXmlFileContent(filePaths.sheets[sheetId]),\r\n xml,\r\n values,\r\n styles,\r\n properties,\r\n options\r\n )\r\n\r\n // Get spreadsheet data.\r\n const data = getData(sheet, options)\r\n\r\n // Can return properties, if required.\r\n if (options.properties) {\r\n return {\r\n data,\r\n properties\r\n }\r\n }\r\n\r\n // Return spreadsheet data.\r\n return data\r\n}\r\n\r\nfunction getSheetId(sheet, sheets) {\r\n if (typeof sheet === 'number') {\r\n const _sheet = sheets[sheet - 1]\r\n return _sheet && _sheet.relationId\r\n }\r\n for (const _sheet of sheets) {\r\n if (_sheet.name === sheet) {\r\n return _sheet.relationId\r\n }\r\n }\r\n}\r\n\r\nfunction createSheetNotFoundError(sheet, sheets) {\r\n const sheetsList = sheets && sheets.map((sheet, i) => `\"${sheet.name}\" (#${i + 1})`).join(', ')\r\n return new Error(`Sheet ${typeof sheet === 'number' ? '#' + sheet : '\"' + sheet + '\"'} not found in the *.xlsx file.${sheets ? ' Available sheets: ' + sheetsList + '.' : ''}`)\r\n}"],"file":"readXlsx.js"}
@@ -6,6 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports["default"] = void 0;
7
7
  var _default = {
8
8
  createDocument: function createDocument(content) {
9
+ // if (!content) {
10
+ // throw new Error('No *.xml content')
11
+ // }
9
12
  // A weird bug: it won't parse XML unless it's trimmed.
10
13
  // https://github.com/catamphetamine/read-excel-file/issues/21
11
14
  return new DOMParser().parseFromString(content.trim(), 'text/xml');
@@ -1 +1 @@
1
- {"version":3,"sources":["../../source/xml/xmlBrowser.js"],"names":["createDocument","content","DOMParser","parseFromString","trim"],"mappings":";;;;;;eAAe;AACdA,EAAAA,cADc,0BACCC,OADD,EACU;AACvB;AACA;AACA,WAAO,IAAIC,SAAJ,GAAgBC,eAAhB,CAAgCF,OAAO,CAACG,IAAR,EAAhC,EAAgD,UAAhD,CAAP;AACA;AALa,C","sourcesContent":["export default {\r\n\tcreateDocument(content) {\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}"],"file":"xmlBrowser.js"}
1
+ {"version":3,"sources":["../../source/xml/xmlBrowser.js"],"names":["createDocument","content","DOMParser","parseFromString","trim"],"mappings":";;;;;;eAAe;AACdA,EAAAA,cADc,0BACCC,OADD,EACU;AACvB;AACA;AACA;AACA;AACA;AACA,WAAO,IAAIC,SAAJ,GAAgBC,eAAhB,CAAgCF,OAAO,CAACG,IAAR,EAAhC,EAAgD,UAAhD,CAAP;AACA;AARa,C","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}"],"file":"xmlBrowser.js"}
@@ -34,16 +34,24 @@ export default function readXlsx(contents, xml) {
34
34
  options = _objectSpread({
35
35
  sheet: 1
36
36
  }, options);
37
- } // Some Excel editors don't want to use standard naming scheme for sheet files.
37
+ }
38
+
39
+ var getXmlFileContent = function getXmlFileContent(filePath) {
40
+ if (!contents[filePath]) {
41
+ throw new Error("\"".concat(filePath, "\" file not found inside the *.xlsx file zip archive"));
42
+ }
43
+
44
+ return contents[filePath];
45
+ }; // Some Excel editors don't want to use standard naming scheme for sheet files.
38
46
  // https://github.com/tidyverse/readxl/issues/104
39
47
 
40
48
 
41
- var filePaths = parseFilePaths(contents['xl/_rels/workbook.xml.rels'], xml); // Default file path for "shared strings": "xl/sharedStrings.xml".
49
+ var filePaths = parseFilePaths(getXmlFileContent('xl/_rels/workbook.xml.rels'), xml); // Default file path for "shared strings": "xl/sharedStrings.xml".
42
50
 
43
- var values = filePaths.sharedStrings ? parseSharedStrings(contents[filePaths.sharedStrings], xml) : []; // Default file path for "styles": "xl/styles.xml".
51
+ var values = filePaths.sharedStrings ? parseSharedStrings(getXmlFileContent(filePaths.sharedStrings), xml) : []; // Default file path for "styles": "xl/styles.xml".
44
52
 
45
- var styles = filePaths.styles ? parseStyles(contents[filePaths.styles], xml) : {};
46
- var properties = parseProperties(contents['xl/workbook.xml'], xml); // A feature for getting the list of sheets in an Excel file.
53
+ var styles = filePaths.styles ? parseStyles(getXmlFileContent(filePaths.styles), xml) : {};
54
+ var properties = parseProperties(getXmlFileContent('xl/workbook.xml'), xml); // A feature for getting the list of sheets in an Excel file.
47
55
  // https://github.com/catamphetamine/read-excel-file/issues/14
48
56
 
49
57
  if (options.getSheets) {
@@ -64,7 +72,7 @@ export default function readXlsx(contents, xml) {
64
72
  } // Parse sheet data.
65
73
 
66
74
 
67
- var sheet = parseSheet(contents[filePaths.sheets[sheetId]], xml, values, styles, properties, options); // Get spreadsheet data.
75
+ var sheet = parseSheet(getXmlFileContent(filePaths.sheets[sheetId]), xml, values, styles, properties, options); // Get spreadsheet data.
68
76
 
69
77
  var data = getData(sheet, options); // Can return properties, if required.
70
78
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../source/read/readXlsx.js"],"names":["parseProperties","parseFilePaths","parseStyles","parseSharedStrings","parseSheet","getData","readXlsx","contents","xml","options","sheet","filePaths","values","sharedStrings","styles","properties","getSheets","sheets","map","name","sheetId","getSheetId","createSheetNotFoundError","data","_sheet","relationId","sheetsList","i","join","Error"],"mappings":"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","sourcesContent":["import parseProperties from './parseProperties'\r\nimport parseFilePaths from './parseFilePaths'\r\nimport parseStyles from './parseStyles'\r\nimport parseSharedStrings from './parseSharedStrings'\r\nimport parseSheet from './parseSheet'\r\nimport getData from './getData'\r\n\r\n// For an introduction in reading `*.xlsx` files see \"The minimum viable XLSX reader\":\r\n// https://www.brendanlong.com/the-minimum-viable-xlsx-reader.html\r\n\r\n/**\r\n * Reads an (unzipped) XLSX file structure into a 2D array of cells.\r\n * @param {object} contents - A list of XML files inside XLSX file (which is a zipped directory).\r\n * @param {number?} options.sheet - Workbook sheet id (`1` by default).\r\n * @param {string?} options.dateFormat - Date format, e.g. \"mm/dd/yyyy\". Values having this format template set will be parsed as dates.\r\n * @param {object} contents - A list of XML files inside XLSX file (which is a zipped directory).\r\n * @return {object} An object of shape `{ data, cells, properties }`. `data: string[][]` is an array of rows, each row being an array of cell values. `cells: string[][]` is an array of rows, each row being an array of cells. `properties: object` is the spreadsheet properties (e.g. whether date epoch is 1904 instead of 1900).\r\n */\r\nexport default function readXlsx(contents, xml, options = {}) {\r\n if (!options.sheet) {\r\n options = {\r\n sheet: 1,\r\n ...options\r\n }\r\n }\r\n\r\n // Some Excel editors don't want to use standard naming scheme for sheet files.\r\n // https://github.com/tidyverse/readxl/issues/104\r\n const filePaths = parseFilePaths(contents['xl/_rels/workbook.xml.rels'], xml)\r\n\r\n // Default file path for \"shared strings\": \"xl/sharedStrings.xml\".\r\n const values = filePaths.sharedStrings\r\n ? parseSharedStrings(contents[filePaths.sharedStrings], xml)\r\n : []\r\n\r\n // Default file path for \"styles\": \"xl/styles.xml\".\r\n const styles = filePaths.styles\r\n ? parseStyles(contents[filePaths.styles], xml)\r\n : {}\r\n\r\n const properties = parseProperties(contents['xl/workbook.xml'], xml)\r\n\r\n // A feature for getting the list of sheets in an Excel file.\r\n // https://github.com/catamphetamine/read-excel-file/issues/14\r\n if (options.getSheets) {\r\n return properties.sheets.map(({ name }) => ({\r\n name\r\n }))\r\n }\r\n\r\n // Find the sheet by name, or take the first one.\r\n const sheetId = getSheetId(options.sheet, properties.sheets)\r\n\r\n // If the sheet wasn't found then throw an error.\r\n // Example: \"xl/worksheets/sheet1.xml\".\r\n if (!sheetId || !filePaths.sheets[sheetId]) {\r\n throw createSheetNotFoundError(options.sheet, properties.sheets)\r\n }\r\n\r\n // Parse sheet data.\r\n const sheet = parseSheet(\r\n contents[filePaths.sheets[sheetId]],\r\n xml,\r\n values,\r\n styles,\r\n properties,\r\n options\r\n )\r\n\r\n // Get spreadsheet data.\r\n const data = getData(sheet, options)\r\n\r\n // Can return properties, if required.\r\n if (options.properties) {\r\n return {\r\n data,\r\n properties\r\n }\r\n }\r\n\r\n // Return spreadsheet data.\r\n return data\r\n}\r\n\r\nfunction getSheetId(sheet, sheets) {\r\n if (typeof sheet === 'number') {\r\n const _sheet = sheets[sheet - 1]\r\n return _sheet && _sheet.relationId\r\n }\r\n for (const _sheet of sheets) {\r\n if (_sheet.name === sheet) {\r\n return _sheet.relationId\r\n }\r\n }\r\n}\r\n\r\nfunction createSheetNotFoundError(sheet, sheets) {\r\n const sheetsList = sheets && sheets.map((sheet, i) => `\"${sheet.name}\" (#${i + 1})`).join(', ')\r\n return new Error(`Sheet ${typeof sheet === 'number' ? '#' + sheet : '\"' + sheet + '\"'} not found in the *.xlsx file.${sheets ? ' Available sheets: ' + sheetsList + '.' : ''}`)\r\n}"],"file":"readXlsx.js"}
1
+ {"version":3,"sources":["../../source/read/readXlsx.js"],"names":["parseProperties","parseFilePaths","parseStyles","parseSharedStrings","parseSheet","getData","readXlsx","contents","xml","options","sheet","getXmlFileContent","filePath","Error","filePaths","values","sharedStrings","styles","properties","getSheets","sheets","map","name","sheetId","getSheetId","createSheetNotFoundError","data","_sheet","relationId","sheetsList","i","join"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,eAAP,MAA4B,mBAA5B;AACA,OAAOC,cAAP,MAA2B,kBAA3B;AACA,OAAOC,WAAP,MAAwB,eAAxB;AACA,OAAOC,kBAAP,MAA+B,sBAA/B;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,OAAOC,OAAP,MAAoB,WAApB,C,CAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,QAAT,CAAkBC,QAAlB,EAA4BC,GAA5B,EAA+C;AAAA,MAAdC,OAAc,uEAAJ,EAAI;;AAC5D,MAAI,CAACA,OAAO,CAACC,KAAb,EAAoB;AAClBD,IAAAA,OAAO;AACLC,MAAAA,KAAK,EAAE;AADF,OAEFD,OAFE,CAAP;AAID;;AAED,MAAME,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,QAAD,EAAc;AACtC,QAAI,CAACL,QAAQ,CAACK,QAAD,CAAb,EAAyB;AACvB,YAAM,IAAIC,KAAJ,aAAcD,QAAd,0DAAN;AACD;;AACD,WAAOL,QAAQ,CAACK,QAAD,CAAf;AACD,GALD,CAR4D,CAe5D;AACA;;;AACA,MAAME,SAAS,GAAGb,cAAc,CAACU,iBAAiB,CAAC,4BAAD,CAAlB,EAAkDH,GAAlD,CAAhC,CAjB4D,CAmB5D;;AACA,MAAMO,MAAM,GAAGD,SAAS,CAACE,aAAV,GACXb,kBAAkB,CAACQ,iBAAiB,CAACG,SAAS,CAACE,aAAX,CAAlB,EAA6CR,GAA7C,CADP,GAEX,EAFJ,CApB4D,CAwB5D;;AACA,MAAMS,MAAM,GAAGH,SAAS,CAACG,MAAV,GACXf,WAAW,CAACS,iBAAiB,CAACG,SAAS,CAACG,MAAX,CAAlB,EAAsCT,GAAtC,CADA,GAEX,EAFJ;AAIA,MAAMU,UAAU,GAAGlB,eAAe,CAACW,iBAAiB,CAAC,iBAAD,CAAlB,EAAuCH,GAAvC,CAAlC,CA7B4D,CA+B5D;AACA;;AACA,MAAIC,OAAO,CAACU,SAAZ,EAAuB;AACrB,WAAOD,UAAU,CAACE,MAAX,CAAkBC,GAAlB,CAAsB;AAAA,UAAGC,IAAH,QAAGA,IAAH;AAAA,aAAe;AAC1CA,QAAAA,IAAI,EAAJA;AAD0C,OAAf;AAAA,KAAtB,CAAP;AAGD,GArC2D,CAuC5D;;;AACA,MAAMC,OAAO,GAAGC,UAAU,CAACf,OAAO,CAACC,KAAT,EAAgBQ,UAAU,CAACE,MAA3B,CAA1B,CAxC4D,CA0C5D;AACA;;AACA,MAAI,CAACG,OAAD,IAAY,CAACT,SAAS,CAACM,MAAV,CAAiBG,OAAjB,CAAjB,EAA4C;AAC1C,UAAME,wBAAwB,CAAChB,OAAO,CAACC,KAAT,EAAgBQ,UAAU,CAACE,MAA3B,CAA9B;AACD,GA9C2D,CAgD5D;;;AACA,MAAMV,KAAK,GAAGN,UAAU,CACtBO,iBAAiB,CAACG,SAAS,CAACM,MAAV,CAAiBG,OAAjB,CAAD,CADK,EAEtBf,GAFsB,EAGtBO,MAHsB,EAItBE,MAJsB,EAKtBC,UALsB,EAMtBT,OANsB,CAAxB,CAjD4D,CA0D5D;;AACA,MAAMiB,IAAI,GAAGrB,OAAO,CAACK,KAAD,EAAQD,OAAR,CAApB,CA3D4D,CA6D5D;;AACA,MAAIA,OAAO,CAACS,UAAZ,EAAwB;AACtB,WAAO;AACLQ,MAAAA,IAAI,EAAJA,IADK;AAELR,MAAAA,UAAU,EAAVA;AAFK,KAAP;AAID,GAnE2D,CAqE5D;;;AACA,SAAOQ,IAAP;AACD;;AAED,SAASF,UAAT,CAAoBd,KAApB,EAA2BU,MAA3B,EAAmC;AACjC,MAAI,OAAOV,KAAP,KAAiB,QAArB,EAA+B;AAC7B,QAAMiB,MAAM,GAAGP,MAAM,CAACV,KAAK,GAAG,CAAT,CAArB;AACA,WAAOiB,MAAM,IAAIA,MAAM,CAACC,UAAxB;AACD;;AACD,uDAAqBR,MAArB,wCAA6B;AAAA,QAAlBO,OAAkB;;AAC3B,QAAIA,OAAM,CAACL,IAAP,KAAgBZ,KAApB,EAA2B;AACzB,aAAOiB,OAAM,CAACC,UAAd;AACD;AACF;AACF;;AAED,SAASH,wBAAT,CAAkCf,KAAlC,EAAyCU,MAAzC,EAAiD;AAC/C,MAAMS,UAAU,GAAGT,MAAM,IAAIA,MAAM,CAACC,GAAP,CAAW,UAACX,KAAD,EAAQoB,CAAR;AAAA,uBAAkBpB,KAAK,CAACY,IAAxB,kBAAmCQ,CAAC,GAAG,CAAvC;AAAA,GAAX,EAAwDC,IAAxD,CAA6D,IAA7D,CAA7B;AACA,SAAO,IAAIlB,KAAJ,iBAAmB,OAAOH,KAAP,KAAiB,QAAjB,GAA4B,MAAMA,KAAlC,GAA0C,MAAMA,KAAN,GAAc,GAA3E,2CAA+GU,MAAM,GAAG,wBAAwBS,UAAxB,GAAqC,GAAxC,GAA8C,EAAnK,EAAP;AACD","sourcesContent":["import parseProperties from './parseProperties'\r\nimport parseFilePaths from './parseFilePaths'\r\nimport parseStyles from './parseStyles'\r\nimport parseSharedStrings from './parseSharedStrings'\r\nimport parseSheet from './parseSheet'\r\nimport getData from './getData'\r\n\r\n// For an introduction in reading `*.xlsx` files see \"The minimum viable XLSX reader\":\r\n// https://www.brendanlong.com/the-minimum-viable-xlsx-reader.html\r\n\r\n/**\r\n * Reads an (unzipped) XLSX file structure into a 2D array of cells.\r\n * @param {object} contents - A list of XML files inside XLSX file (which is a zipped directory).\r\n * @param {number?} options.sheet - Workbook sheet id (`1` by default).\r\n * @param {string?} options.dateFormat - Date format, e.g. \"mm/dd/yyyy\". Values having this format template set will be parsed as dates.\r\n * @param {object} contents - A list of XML files inside XLSX file (which is a zipped directory).\r\n * @return {object} An object of shape `{ data, cells, properties }`. `data: string[][]` is an array of rows, each row being an array of cell values. `cells: string[][]` is an array of rows, each row being an array of cells. `properties: object` is the spreadsheet properties (e.g. whether date epoch is 1904 instead of 1900).\r\n */\r\nexport default function readXlsx(contents, xml, options = {}) {\r\n if (!options.sheet) {\r\n options = {\r\n sheet: 1,\r\n ...options\r\n }\r\n }\r\n\r\n const getXmlFileContent = (filePath) => {\r\n if (!contents[filePath]) {\r\n throw new Error(`\"${filePath}\" file not found inside the *.xlsx file zip archive`)\r\n }\r\n return contents[filePath]\r\n }\r\n\r\n // Some Excel editors don't want to use standard naming scheme for sheet files.\r\n // https://github.com/tidyverse/readxl/issues/104\r\n const filePaths = parseFilePaths(getXmlFileContent('xl/_rels/workbook.xml.rels'), xml)\r\n\r\n // Default file path for \"shared strings\": \"xl/sharedStrings.xml\".\r\n const values = filePaths.sharedStrings\r\n ? parseSharedStrings(getXmlFileContent(filePaths.sharedStrings), xml)\r\n : []\r\n\r\n // Default file path for \"styles\": \"xl/styles.xml\".\r\n const styles = filePaths.styles\r\n ? parseStyles(getXmlFileContent(filePaths.styles), xml)\r\n : {}\r\n\r\n const properties = parseProperties(getXmlFileContent('xl/workbook.xml'), xml)\r\n\r\n // A feature for getting the list of sheets in an Excel file.\r\n // https://github.com/catamphetamine/read-excel-file/issues/14\r\n if (options.getSheets) {\r\n return properties.sheets.map(({ name }) => ({\r\n name\r\n }))\r\n }\r\n\r\n // Find the sheet by name, or take the first one.\r\n const sheetId = getSheetId(options.sheet, properties.sheets)\r\n\r\n // If the sheet wasn't found then throw an error.\r\n // Example: \"xl/worksheets/sheet1.xml\".\r\n if (!sheetId || !filePaths.sheets[sheetId]) {\r\n throw createSheetNotFoundError(options.sheet, properties.sheets)\r\n }\r\n\r\n // Parse sheet data.\r\n const sheet = parseSheet(\r\n getXmlFileContent(filePaths.sheets[sheetId]),\r\n xml,\r\n values,\r\n styles,\r\n properties,\r\n options\r\n )\r\n\r\n // Get spreadsheet data.\r\n const data = getData(sheet, options)\r\n\r\n // Can return properties, if required.\r\n if (options.properties) {\r\n return {\r\n data,\r\n properties\r\n }\r\n }\r\n\r\n // Return spreadsheet data.\r\n return data\r\n}\r\n\r\nfunction getSheetId(sheet, sheets) {\r\n if (typeof sheet === 'number') {\r\n const _sheet = sheets[sheet - 1]\r\n return _sheet && _sheet.relationId\r\n }\r\n for (const _sheet of sheets) {\r\n if (_sheet.name === sheet) {\r\n return _sheet.relationId\r\n }\r\n }\r\n}\r\n\r\nfunction createSheetNotFoundError(sheet, sheets) {\r\n const sheetsList = sheets && sheets.map((sheet, i) => `\"${sheet.name}\" (#${i + 1})`).join(', ')\r\n return new Error(`Sheet ${typeof sheet === 'number' ? '#' + sheet : '\"' + sheet + '\"'} not found in the *.xlsx file.${sheets ? ' Available sheets: ' + sheetsList + '.' : ''}`)\r\n}"],"file":"readXlsx.js"}
@@ -1,5 +1,8 @@
1
1
  export default {
2
2
  createDocument: function createDocument(content) {
3
+ // if (!content) {
4
+ // throw new Error('No *.xml content')
5
+ // }
3
6
  // A weird bug: it won't parse XML unless it's trimmed.
4
7
  // https://github.com/catamphetamine/read-excel-file/issues/21
5
8
  return new DOMParser().parseFromString(content.trim(), 'text/xml');
@@ -1 +1 @@
1
- {"version":3,"sources":["../../source/xml/xmlBrowser.js"],"names":["createDocument","content","DOMParser","parseFromString","trim"],"mappings":"AAAA,eAAe;AACdA,EAAAA,cADc,0BACCC,OADD,EACU;AACvB;AACA;AACA,WAAO,IAAIC,SAAJ,GAAgBC,eAAhB,CAAgCF,OAAO,CAACG,IAAR,EAAhC,EAAgD,UAAhD,CAAP;AACA;AALa,CAAf","sourcesContent":["export default {\r\n\tcreateDocument(content) {\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}"],"file":"xmlBrowser.js"}
1
+ {"version":3,"sources":["../../source/xml/xmlBrowser.js"],"names":["createDocument","content","DOMParser","parseFromString","trim"],"mappings":"AAAA,eAAe;AACdA,EAAAA,cADc,0BACCC,OADD,EACU;AACvB;AACA;AACA;AACA;AACA;AACA,WAAO,IAAIC,SAAJ,GAAgBC,eAAhB,CAAgCF,OAAO,CAACG,IAAR,EAAhC,EAAgD,UAAhD,CAAP;AACA;AARa,CAAf","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}"],"file":"xmlBrowser.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "read-excel-file",
3
- "version": "5.2.20",
3
+ "version": "5.2.21",
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,