read-excel-file 6.0.0 → 6.0.2

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.
@@ -8,6 +8,7 @@ exports.findChildren = findChildren;
8
8
  exports.forEach = forEach;
9
9
  exports.getOuterXml = getOuterXml;
10
10
  exports.getTagName = getTagName;
11
+ exports.isElement = isElement;
11
12
  exports.map = map;
12
13
  function findChild(node, tagName) {
13
14
  var i = 0;
@@ -73,6 +74,11 @@ function getTagName(element) {
73
74
  // before a colon, if any.
74
75
  return element.tagName.replace(NAMESPACE_REG_EXP, '');
75
76
  }
77
+ function isElement(node) {
78
+ // `nodeType: 1` means "Element".
79
+ // https://www.w3schools.com/xml/prop_element_nodetype.asp
80
+ return node.nodeType === 1;
81
+ }
76
82
 
77
83
  // This function is only used for occasional debug messages.
78
84
  function getOuterXml(node) {
@@ -1 +1 @@
1
- {"version":3,"file":"dom.js","names":["findChild","node","tagName","i","childNodes","length","childNode","nodeType","getTagName","findChildren","results","push","forEach","func","map","NAMESPACE_REG_EXP","element","replace","getOuterXml","textContent","xml","j","attributes","name","value"],"sources":["../../source/xml/dom.js"],"sourcesContent":["export function findChild(node, tagName) {\r\n\tlet i = 0\r\n\twhile (i < node.childNodes.length) {\r\n\t\tconst childNode = node.childNodes[i]\r\n\t\t// `nodeType: 1` means \"Element\".\r\n\t\t// https://www.w3schools.com/xml/prop_element_nodetype.asp\r\n\t\tif (childNode.nodeType === 1 && getTagName(childNode) === tagName) {\r\n\t\t\treturn childNode\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n}\r\n\r\nexport function findChildren(node, tagName) {\r\n\tconst results = []\r\n\tlet i = 0\r\n\twhile (i < node.childNodes.length) {\r\n\t\tconst childNode = node.childNodes[i]\r\n\t\t// `nodeType: 1` means \"Element\".\r\n\t\t// https://www.w3schools.com/xml/prop_element_nodetype.asp\r\n\t\tif (childNode.nodeType === 1 && getTagName(childNode) === tagName) {\r\n\t\t\tresults.push(childNode)\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\treturn results\r\n}\r\n\r\nexport function forEach(node, tagName, func) {\r\n\t// if (typeof tagName === 'function') {\r\n\t// \tfunc = tagName\r\n\t// \ttagName = undefined\r\n\t// }\r\n\tlet i = 0\r\n\twhile (i < node.childNodes.length) {\r\n\t\tconst childNode = node.childNodes[i]\r\n\t\tif (tagName) {\r\n\t\t\t// `nodeType: 1` means \"Element\".\r\n\t\t\t// https://www.w3schools.com/xml/prop_element_nodetype.asp\r\n\t\t\tif (childNode.nodeType === 1 && getTagName(childNode) === tagName) {\r\n\t\t\t\tfunc(childNode, i)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tfunc(childNode, i)\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n}\r\n\r\nexport function map(node, tagName, func) {\r\n\tconst results = []\r\n\tforEach(node, tagName, (node, i) => {\r\n\t\tresults.push(func(node, i))\r\n\t})\r\n\treturn results\r\n}\r\n\r\nconst NAMESPACE_REG_EXP = /.+\\:/\r\nexport function getTagName(element) {\r\n\t// For some weird reason, if an element is declared as,\r\n\t// for example, `<x:sheets/>`, then its `.tagName` will be\r\n\t// \"x:sheets\" instead of just \"sheets\".\r\n\t// https://gitlab.com/catamphetamine/read-excel-file/-/issues/25\r\n\t// Its not clear how to tell it to ignore any namespaces\r\n\t// when getting `.tagName`, so just replacing anything\r\n\t// before a colon, if any.\r\n\treturn element.tagName.replace(NAMESPACE_REG_EXP, '')\r\n}\r\n\r\n// This function is only used for occasional debug messages.\r\nexport function getOuterXml(node) {\r\n\t// `nodeType: 1` means \"Element\".\r\n\t// https://www.w3schools.com/xml/prop_element_nodetype.asp\r\n\tif (node.nodeType !== 1) {\r\n\t\treturn node.textContent\r\n\t}\r\n\r\n let xml = '<' + getTagName(node)\r\n\r\n let j = 0\r\n while (j < node.attributes.length) {\r\n xml += ' ' + node.attributes[j].name + '=' + '\"' + node.attributes[j].value + '\"'\r\n j++\r\n }\r\n\r\n xml += '>'\r\n\r\n let i = 0\r\n while (i < node.childNodes.length) {\r\n \txml += getOuterXml(node.childNodes[i])\r\n i++\r\n }\r\n\r\n xml += '</' + getTagName(node) + '>'\r\n\r\n return xml\r\n}"],"mappings":"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"}
1
+ {"version":3,"file":"dom.js","names":["findChild","node","tagName","i","childNodes","length","childNode","nodeType","getTagName","findChildren","results","push","forEach","func","map","NAMESPACE_REG_EXP","element","replace","isElement","getOuterXml","textContent","xml","j","attributes","name","value"],"sources":["../../source/xml/dom.js"],"sourcesContent":["export function findChild(node, tagName) {\r\n\tlet i = 0\r\n\twhile (i < node.childNodes.length) {\r\n\t\tconst childNode = node.childNodes[i]\r\n\t\t// `nodeType: 1` means \"Element\".\r\n\t\t// https://www.w3schools.com/xml/prop_element_nodetype.asp\r\n\t\tif (childNode.nodeType === 1 && getTagName(childNode) === tagName) {\r\n\t\t\treturn childNode\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n}\r\n\r\nexport function findChildren(node, tagName) {\r\n\tconst results = []\r\n\tlet i = 0\r\n\twhile (i < node.childNodes.length) {\r\n\t\tconst childNode = node.childNodes[i]\r\n\t\t// `nodeType: 1` means \"Element\".\r\n\t\t// https://www.w3schools.com/xml/prop_element_nodetype.asp\r\n\t\tif (childNode.nodeType === 1 && getTagName(childNode) === tagName) {\r\n\t\t\tresults.push(childNode)\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\treturn results\r\n}\r\n\r\nexport function forEach(node, tagName, func) {\r\n\t// if (typeof tagName === 'function') {\r\n\t// \tfunc = tagName\r\n\t// \ttagName = undefined\r\n\t// }\r\n\tlet i = 0\r\n\twhile (i < node.childNodes.length) {\r\n\t\tconst childNode = node.childNodes[i]\r\n\t\tif (tagName) {\r\n\t\t\t// `nodeType: 1` means \"Element\".\r\n\t\t\t// https://www.w3schools.com/xml/prop_element_nodetype.asp\r\n\t\t\tif (childNode.nodeType === 1 && getTagName(childNode) === tagName) {\r\n\t\t\t\tfunc(childNode, i)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tfunc(childNode, i)\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n}\r\n\r\nexport function map(node, tagName, func) {\r\n\tconst results = []\r\n\tforEach(node, tagName, (node, i) => {\r\n\t\tresults.push(func(node, i))\r\n\t})\r\n\treturn results\r\n}\r\n\r\nconst NAMESPACE_REG_EXP = /.+\\:/\r\nexport function getTagName(element) {\r\n\t// For some weird reason, if an element is declared as,\r\n\t// for example, `<x:sheets/>`, then its `.tagName` will be\r\n\t// \"x:sheets\" instead of just \"sheets\".\r\n\t// https://gitlab.com/catamphetamine/read-excel-file/-/issues/25\r\n\t// Its not clear how to tell it to ignore any namespaces\r\n\t// when getting `.tagName`, so just replacing anything\r\n\t// before a colon, if any.\r\n\treturn element.tagName.replace(NAMESPACE_REG_EXP, '')\r\n}\r\n\r\nexport function isElement(node) {\r\n\t// `nodeType: 1` means \"Element\".\r\n\t// https://www.w3schools.com/xml/prop_element_nodetype.asp\r\n\treturn node.nodeType === 1\r\n}\r\n\r\n// This function is only used for occasional debug messages.\r\nexport function getOuterXml(node) {\r\n\t// `nodeType: 1` means \"Element\".\r\n\t// https://www.w3schools.com/xml/prop_element_nodetype.asp\r\n\tif (node.nodeType !== 1) {\r\n\t\treturn node.textContent\r\n\t}\r\n\r\n let xml = '<' + getTagName(node)\r\n\r\n let j = 0\r\n while (j < node.attributes.length) {\r\n xml += ' ' + node.attributes[j].name + '=' + '\"' + node.attributes[j].value + '\"'\r\n j++\r\n }\r\n\r\n xml += '>'\r\n\r\n let i = 0\r\n while (i < node.childNodes.length) {\r\n \txml += getOuterXml(node.childNodes[i])\r\n i++\r\n }\r\n\r\n xml += '</' + getTagName(node) + '>'\r\n\r\n return xml\r\n}"],"mappings":"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"}
@@ -44,7 +44,7 @@ function getCellValue(document, node) {
44
44
  return (0, _dom.findChild)(node, 'v');
45
45
  }
46
46
  function getCellInlineStringValue(document, node) {
47
- if (node.firstChild && (0, _dom.getTagName)(node.firstChild) === 'is' && node.firstChild.firstChild && (0, _dom.getTagName)(node.firstChild.firstChild) === 't') {
47
+ if (node.firstChild && (0, _dom.isElement)(node.firstChild) && (0, _dom.getTagName)(node.firstChild) === 'is' && node.firstChild.firstChild && (0, _dom.isElement)(node.firstChild.firstChild) && (0, _dom.getTagName)(node.firstChild.firstChild) === 't') {
48
48
  return node.firstChild.firstChild.textContent;
49
49
  }
50
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"xlsx.js","names":["_dom","require","getCells","document","worksheet","documentElement","sheetData","findChild","cells","forEach","row","cell","push","getMergedCells","mergedCells","mergedCellsInfo","mergedCell","getAttribute","getCellValue","node","getCellInlineStringValue","firstChild","getTagName","textContent","getDimensions","dimensions","getBaseStyles","styleSheet","cellStyleXfs","findChildren","getCellStyles","cellXfs","getNumberFormats","numberFormats","numFmts","getSharedStrings","sst","map","string","t","value","r","getWorkbookProperties","workbook","getRelationships","relationships","getSheets","sheets"],"sources":["../../source/xml/xlsx.js"],"sourcesContent":["import { findChild, findChildren, forEach, map, getTagName } from './dom.js'\r\n\r\n// Returns an array of cells,\r\n// each element being an XML DOM element representing a cell.\r\nexport function getCells(document) {\r\n const worksheet = document.documentElement\r\n const sheetData = findChild(worksheet, 'sheetData')\r\n\r\n const cells = []\r\n forEach(sheetData, 'row', (row) => {\r\n forEach(row, 'c', (cell) => {\r\n cells.push(cell)\r\n })\r\n })\r\n return cells\r\n}\r\n\r\nexport function getMergedCells(document) {\r\n const worksheet = document.documentElement\r\n const mergedCells = findChild(worksheet, 'mergeCells')\r\n const mergedCellsInfo = []\r\n if (mergedCells) {\r\n forEach(mergedCells, 'mergeCell', (mergedCell) => {\r\n mergedCellsInfo.push(mergedCell.getAttribute('ref'))\r\n })\r\n }\r\n return mergedCellsInfo\r\n}\r\n\r\nexport function getCellValue(document, node) {\r\n return findChild(node, 'v')\r\n}\r\n\r\nexport function getCellInlineStringValue(document, node) {\r\n if (\r\n node.firstChild &&\r\n getTagName(node.firstChild) === 'is' &&\r\n node.firstChild.firstChild &&\r\n getTagName(node.firstChild.firstChild) === 't'\r\n ) {\r\n return node.firstChild.firstChild.textContent\r\n }\r\n}\r\n\r\nexport function getDimensions(document) {\r\n const worksheet = document.documentElement\r\n const dimensions = findChild(worksheet, 'dimension')\r\n if (dimensions) {\r\n return dimensions.getAttribute('ref')\r\n }\r\n}\r\n\r\nexport function getBaseStyles(document) {\r\n const styleSheet = document.documentElement\r\n const cellStyleXfs = findChild(styleSheet, 'cellStyleXfs')\r\n if (cellStyleXfs) {\r\n return findChildren(cellStyleXfs, 'xf')\r\n }\r\n return []\r\n}\r\n\r\nexport function getCellStyles(document) {\r\n const styleSheet = document.documentElement\r\n const cellXfs = findChild(styleSheet, 'cellXfs')\r\n if (!cellXfs) {\r\n return []\r\n }\r\n return findChildren(cellXfs, 'xf')\r\n}\r\n\r\nexport function getNumberFormats(document) {\r\n const styleSheet = document.documentElement\r\n let numberFormats = []\r\n const numFmts = findChild(styleSheet, 'numFmts')\r\n if (numFmts) {\r\n return findChildren(numFmts, 'numFmt')\r\n }\r\n return []\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 const sst = document.documentElement\r\n return map(sst, 'si', string => {\r\n const t = findChild(string, 't')\r\n if (t) {\r\n return t.textContent\r\n }\r\n let value = ''\r\n forEach(string, 'r', (r) => {\r\n value += findChild(r, 't').textContent\r\n })\r\n return value\r\n })\r\n}\r\n\r\nexport function getWorkbookProperties(document) {\r\n const workbook = document.documentElement\r\n return findChild(workbook, 'workbookPr')\r\n}\r\n\r\nexport function getRelationships(document) {\r\n const relationships = document.documentElement\r\n return findChildren(relationships, 'Relationship')\r\n}\r\n\r\nexport function getSheets(document) {\r\n const workbook = document.documentElement\r\n const sheets = findChild(workbook, 'sheets')\r\n return findChildren(sheets, 'sheet')\r\n}"],"mappings":"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"}
1
+ {"version":3,"file":"xlsx.js","names":["_dom","require","getCells","document","worksheet","documentElement","sheetData","findChild","cells","forEach","row","cell","push","getMergedCells","mergedCells","mergedCellsInfo","mergedCell","getAttribute","getCellValue","node","getCellInlineStringValue","firstChild","isElement","getTagName","textContent","getDimensions","dimensions","getBaseStyles","styleSheet","cellStyleXfs","findChildren","getCellStyles","cellXfs","getNumberFormats","numberFormats","numFmts","getSharedStrings","sst","map","string","t","value","r","getWorkbookProperties","workbook","getRelationships","relationships","getSheets","sheets"],"sources":["../../source/xml/xlsx.js"],"sourcesContent":["import { findChild, findChildren, forEach, map, isElement, getTagName } from './dom.js'\r\n\r\n// Returns an array of cells,\r\n// each element being an XML DOM element representing a cell.\r\nexport function getCells(document) {\r\n const worksheet = document.documentElement\r\n const sheetData = findChild(worksheet, 'sheetData')\r\n\r\n const cells = []\r\n forEach(sheetData, 'row', (row) => {\r\n forEach(row, 'c', (cell) => {\r\n cells.push(cell)\r\n })\r\n })\r\n return cells\r\n}\r\n\r\nexport function getMergedCells(document) {\r\n const worksheet = document.documentElement\r\n const mergedCells = findChild(worksheet, 'mergeCells')\r\n const mergedCellsInfo = []\r\n if (mergedCells) {\r\n forEach(mergedCells, 'mergeCell', (mergedCell) => {\r\n mergedCellsInfo.push(mergedCell.getAttribute('ref'))\r\n })\r\n }\r\n return mergedCellsInfo\r\n}\r\n\r\nexport function getCellValue(document, node) {\r\n return findChild(node, 'v')\r\n}\r\n\r\nexport function getCellInlineStringValue(document, node) {\r\n if (\r\n node.firstChild &&\r\n isElement(node.firstChild) &&\r\n getTagName(node.firstChild) === 'is' &&\r\n node.firstChild.firstChild &&\r\n isElement(node.firstChild.firstChild) &&\r\n getTagName(node.firstChild.firstChild) === 't'\r\n ) {\r\n return node.firstChild.firstChild.textContent\r\n }\r\n}\r\n\r\nexport function getDimensions(document) {\r\n const worksheet = document.documentElement\r\n const dimensions = findChild(worksheet, 'dimension')\r\n if (dimensions) {\r\n return dimensions.getAttribute('ref')\r\n }\r\n}\r\n\r\nexport function getBaseStyles(document) {\r\n const styleSheet = document.documentElement\r\n const cellStyleXfs = findChild(styleSheet, 'cellStyleXfs')\r\n if (cellStyleXfs) {\r\n return findChildren(cellStyleXfs, 'xf')\r\n }\r\n return []\r\n}\r\n\r\nexport function getCellStyles(document) {\r\n const styleSheet = document.documentElement\r\n const cellXfs = findChild(styleSheet, 'cellXfs')\r\n if (!cellXfs) {\r\n return []\r\n }\r\n return findChildren(cellXfs, 'xf')\r\n}\r\n\r\nexport function getNumberFormats(document) {\r\n const styleSheet = document.documentElement\r\n let numberFormats = []\r\n const numFmts = findChild(styleSheet, 'numFmts')\r\n if (numFmts) {\r\n return findChildren(numFmts, 'numFmt')\r\n }\r\n return []\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 const sst = document.documentElement\r\n return map(sst, 'si', string => {\r\n const t = findChild(string, 't')\r\n if (t) {\r\n return t.textContent\r\n }\r\n let value = ''\r\n forEach(string, 'r', (r) => {\r\n value += findChild(r, 't').textContent\r\n })\r\n return value\r\n })\r\n}\r\n\r\nexport function getWorkbookProperties(document) {\r\n const workbook = document.documentElement\r\n return findChild(workbook, 'workbookPr')\r\n}\r\n\r\nexport function getRelationships(document) {\r\n const relationships = document.documentElement\r\n return findChildren(relationships, 'Relationship')\r\n}\r\n\r\nexport function getSheets(document) {\r\n const workbook = document.documentElement\r\n const sheets = findChild(workbook, 'sheets')\r\n return findChildren(sheets, 'sheet')\r\n}"],"mappings":"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"}
@@ -62,6 +62,11 @@ export function getTagName(element) {
62
62
  // before a colon, if any.
63
63
  return element.tagName.replace(NAMESPACE_REG_EXP, '');
64
64
  }
65
+ export function isElement(node) {
66
+ // `nodeType: 1` means "Element".
67
+ // https://www.w3schools.com/xml/prop_element_nodetype.asp
68
+ return node.nodeType === 1;
69
+ }
65
70
 
66
71
  // This function is only used for occasional debug messages.
67
72
  export function getOuterXml(node) {
@@ -1 +1 @@
1
- {"version":3,"file":"dom.js","names":["findChild","node","tagName","i","childNodes","length","childNode","nodeType","getTagName","findChildren","results","push","forEach","func","map","NAMESPACE_REG_EXP","element","replace","getOuterXml","textContent","xml","j","attributes","name","value"],"sources":["../../source/xml/dom.js"],"sourcesContent":["export function findChild(node, tagName) {\r\n\tlet i = 0\r\n\twhile (i < node.childNodes.length) {\r\n\t\tconst childNode = node.childNodes[i]\r\n\t\t// `nodeType: 1` means \"Element\".\r\n\t\t// https://www.w3schools.com/xml/prop_element_nodetype.asp\r\n\t\tif (childNode.nodeType === 1 && getTagName(childNode) === tagName) {\r\n\t\t\treturn childNode\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n}\r\n\r\nexport function findChildren(node, tagName) {\r\n\tconst results = []\r\n\tlet i = 0\r\n\twhile (i < node.childNodes.length) {\r\n\t\tconst childNode = node.childNodes[i]\r\n\t\t// `nodeType: 1` means \"Element\".\r\n\t\t// https://www.w3schools.com/xml/prop_element_nodetype.asp\r\n\t\tif (childNode.nodeType === 1 && getTagName(childNode) === tagName) {\r\n\t\t\tresults.push(childNode)\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\treturn results\r\n}\r\n\r\nexport function forEach(node, tagName, func) {\r\n\t// if (typeof tagName === 'function') {\r\n\t// \tfunc = tagName\r\n\t// \ttagName = undefined\r\n\t// }\r\n\tlet i = 0\r\n\twhile (i < node.childNodes.length) {\r\n\t\tconst childNode = node.childNodes[i]\r\n\t\tif (tagName) {\r\n\t\t\t// `nodeType: 1` means \"Element\".\r\n\t\t\t// https://www.w3schools.com/xml/prop_element_nodetype.asp\r\n\t\t\tif (childNode.nodeType === 1 && getTagName(childNode) === tagName) {\r\n\t\t\t\tfunc(childNode, i)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tfunc(childNode, i)\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n}\r\n\r\nexport function map(node, tagName, func) {\r\n\tconst results = []\r\n\tforEach(node, tagName, (node, i) => {\r\n\t\tresults.push(func(node, i))\r\n\t})\r\n\treturn results\r\n}\r\n\r\nconst NAMESPACE_REG_EXP = /.+\\:/\r\nexport function getTagName(element) {\r\n\t// For some weird reason, if an element is declared as,\r\n\t// for example, `<x:sheets/>`, then its `.tagName` will be\r\n\t// \"x:sheets\" instead of just \"sheets\".\r\n\t// https://gitlab.com/catamphetamine/read-excel-file/-/issues/25\r\n\t// Its not clear how to tell it to ignore any namespaces\r\n\t// when getting `.tagName`, so just replacing anything\r\n\t// before a colon, if any.\r\n\treturn element.tagName.replace(NAMESPACE_REG_EXP, '')\r\n}\r\n\r\n// This function is only used for occasional debug messages.\r\nexport function getOuterXml(node) {\r\n\t// `nodeType: 1` means \"Element\".\r\n\t// https://www.w3schools.com/xml/prop_element_nodetype.asp\r\n\tif (node.nodeType !== 1) {\r\n\t\treturn node.textContent\r\n\t}\r\n\r\n let xml = '<' + getTagName(node)\r\n\r\n let j = 0\r\n while (j < node.attributes.length) {\r\n xml += ' ' + node.attributes[j].name + '=' + '\"' + node.attributes[j].value + '\"'\r\n j++\r\n }\r\n\r\n xml += '>'\r\n\r\n let i = 0\r\n while (i < node.childNodes.length) {\r\n \txml += getOuterXml(node.childNodes[i])\r\n i++\r\n }\r\n\r\n xml += '</' + getTagName(node) + '>'\r\n\r\n return xml\r\n}"],"mappings":"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"}
1
+ {"version":3,"file":"dom.js","names":["findChild","node","tagName","i","childNodes","length","childNode","nodeType","getTagName","findChildren","results","push","forEach","func","map","NAMESPACE_REG_EXP","element","replace","isElement","getOuterXml","textContent","xml","j","attributes","name","value"],"sources":["../../source/xml/dom.js"],"sourcesContent":["export function findChild(node, tagName) {\r\n\tlet i = 0\r\n\twhile (i < node.childNodes.length) {\r\n\t\tconst childNode = node.childNodes[i]\r\n\t\t// `nodeType: 1` means \"Element\".\r\n\t\t// https://www.w3schools.com/xml/prop_element_nodetype.asp\r\n\t\tif (childNode.nodeType === 1 && getTagName(childNode) === tagName) {\r\n\t\t\treturn childNode\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n}\r\n\r\nexport function findChildren(node, tagName) {\r\n\tconst results = []\r\n\tlet i = 0\r\n\twhile (i < node.childNodes.length) {\r\n\t\tconst childNode = node.childNodes[i]\r\n\t\t// `nodeType: 1` means \"Element\".\r\n\t\t// https://www.w3schools.com/xml/prop_element_nodetype.asp\r\n\t\tif (childNode.nodeType === 1 && getTagName(childNode) === tagName) {\r\n\t\t\tresults.push(childNode)\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\treturn results\r\n}\r\n\r\nexport function forEach(node, tagName, func) {\r\n\t// if (typeof tagName === 'function') {\r\n\t// \tfunc = tagName\r\n\t// \ttagName = undefined\r\n\t// }\r\n\tlet i = 0\r\n\twhile (i < node.childNodes.length) {\r\n\t\tconst childNode = node.childNodes[i]\r\n\t\tif (tagName) {\r\n\t\t\t// `nodeType: 1` means \"Element\".\r\n\t\t\t// https://www.w3schools.com/xml/prop_element_nodetype.asp\r\n\t\t\tif (childNode.nodeType === 1 && getTagName(childNode) === tagName) {\r\n\t\t\t\tfunc(childNode, i)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tfunc(childNode, i)\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n}\r\n\r\nexport function map(node, tagName, func) {\r\n\tconst results = []\r\n\tforEach(node, tagName, (node, i) => {\r\n\t\tresults.push(func(node, i))\r\n\t})\r\n\treturn results\r\n}\r\n\r\nconst NAMESPACE_REG_EXP = /.+\\:/\r\nexport function getTagName(element) {\r\n\t// For some weird reason, if an element is declared as,\r\n\t// for example, `<x:sheets/>`, then its `.tagName` will be\r\n\t// \"x:sheets\" instead of just \"sheets\".\r\n\t// https://gitlab.com/catamphetamine/read-excel-file/-/issues/25\r\n\t// Its not clear how to tell it to ignore any namespaces\r\n\t// when getting `.tagName`, so just replacing anything\r\n\t// before a colon, if any.\r\n\treturn element.tagName.replace(NAMESPACE_REG_EXP, '')\r\n}\r\n\r\nexport function isElement(node) {\r\n\t// `nodeType: 1` means \"Element\".\r\n\t// https://www.w3schools.com/xml/prop_element_nodetype.asp\r\n\treturn node.nodeType === 1\r\n}\r\n\r\n// This function is only used for occasional debug messages.\r\nexport function getOuterXml(node) {\r\n\t// `nodeType: 1` means \"Element\".\r\n\t// https://www.w3schools.com/xml/prop_element_nodetype.asp\r\n\tif (node.nodeType !== 1) {\r\n\t\treturn node.textContent\r\n\t}\r\n\r\n let xml = '<' + getTagName(node)\r\n\r\n let j = 0\r\n while (j < node.attributes.length) {\r\n xml += ' ' + node.attributes[j].name + '=' + '\"' + node.attributes[j].value + '\"'\r\n j++\r\n }\r\n\r\n xml += '>'\r\n\r\n let i = 0\r\n while (i < node.childNodes.length) {\r\n \txml += getOuterXml(node.childNodes[i])\r\n i++\r\n }\r\n\r\n xml += '</' + getTagName(node) + '>'\r\n\r\n return xml\r\n}"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { findChild, findChildren, forEach, map, getTagName } from './dom.js';
1
+ import { findChild, findChildren, forEach, map, isElement, getTagName } from './dom.js';
2
2
 
3
3
  // Returns an array of cells,
4
4
  // each element being an XML DOM element representing a cell.
@@ -28,7 +28,7 @@ export function getCellValue(document, node) {
28
28
  return findChild(node, 'v');
29
29
  }
30
30
  export function getCellInlineStringValue(document, node) {
31
- if (node.firstChild && getTagName(node.firstChild) === 'is' && node.firstChild.firstChild && getTagName(node.firstChild.firstChild) === 't') {
31
+ if (node.firstChild && isElement(node.firstChild) && getTagName(node.firstChild) === 'is' && node.firstChild.firstChild && isElement(node.firstChild.firstChild) && getTagName(node.firstChild.firstChild) === 't') {
32
32
  return node.firstChild.firstChild.textContent;
33
33
  }
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"xlsx.js","names":["findChild","findChildren","forEach","map","getTagName","getCells","document","worksheet","documentElement","sheetData","cells","row","cell","push","getMergedCells","mergedCells","mergedCellsInfo","mergedCell","getAttribute","getCellValue","node","getCellInlineStringValue","firstChild","textContent","getDimensions","dimensions","getBaseStyles","styleSheet","cellStyleXfs","getCellStyles","cellXfs","getNumberFormats","numberFormats","numFmts","getSharedStrings","sst","string","t","value","r","getWorkbookProperties","workbook","getRelationships","relationships","getSheets","sheets"],"sources":["../../source/xml/xlsx.js"],"sourcesContent":["import { findChild, findChildren, forEach, map, getTagName } from './dom.js'\r\n\r\n// Returns an array of cells,\r\n// each element being an XML DOM element representing a cell.\r\nexport function getCells(document) {\r\n const worksheet = document.documentElement\r\n const sheetData = findChild(worksheet, 'sheetData')\r\n\r\n const cells = []\r\n forEach(sheetData, 'row', (row) => {\r\n forEach(row, 'c', (cell) => {\r\n cells.push(cell)\r\n })\r\n })\r\n return cells\r\n}\r\n\r\nexport function getMergedCells(document) {\r\n const worksheet = document.documentElement\r\n const mergedCells = findChild(worksheet, 'mergeCells')\r\n const mergedCellsInfo = []\r\n if (mergedCells) {\r\n forEach(mergedCells, 'mergeCell', (mergedCell) => {\r\n mergedCellsInfo.push(mergedCell.getAttribute('ref'))\r\n })\r\n }\r\n return mergedCellsInfo\r\n}\r\n\r\nexport function getCellValue(document, node) {\r\n return findChild(node, 'v')\r\n}\r\n\r\nexport function getCellInlineStringValue(document, node) {\r\n if (\r\n node.firstChild &&\r\n getTagName(node.firstChild) === 'is' &&\r\n node.firstChild.firstChild &&\r\n getTagName(node.firstChild.firstChild) === 't'\r\n ) {\r\n return node.firstChild.firstChild.textContent\r\n }\r\n}\r\n\r\nexport function getDimensions(document) {\r\n const worksheet = document.documentElement\r\n const dimensions = findChild(worksheet, 'dimension')\r\n if (dimensions) {\r\n return dimensions.getAttribute('ref')\r\n }\r\n}\r\n\r\nexport function getBaseStyles(document) {\r\n const styleSheet = document.documentElement\r\n const cellStyleXfs = findChild(styleSheet, 'cellStyleXfs')\r\n if (cellStyleXfs) {\r\n return findChildren(cellStyleXfs, 'xf')\r\n }\r\n return []\r\n}\r\n\r\nexport function getCellStyles(document) {\r\n const styleSheet = document.documentElement\r\n const cellXfs = findChild(styleSheet, 'cellXfs')\r\n if (!cellXfs) {\r\n return []\r\n }\r\n return findChildren(cellXfs, 'xf')\r\n}\r\n\r\nexport function getNumberFormats(document) {\r\n const styleSheet = document.documentElement\r\n let numberFormats = []\r\n const numFmts = findChild(styleSheet, 'numFmts')\r\n if (numFmts) {\r\n return findChildren(numFmts, 'numFmt')\r\n }\r\n return []\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 const sst = document.documentElement\r\n return map(sst, 'si', string => {\r\n const t = findChild(string, 't')\r\n if (t) {\r\n return t.textContent\r\n }\r\n let value = ''\r\n forEach(string, 'r', (r) => {\r\n value += findChild(r, 't').textContent\r\n })\r\n return value\r\n })\r\n}\r\n\r\nexport function getWorkbookProperties(document) {\r\n const workbook = document.documentElement\r\n return findChild(workbook, 'workbookPr')\r\n}\r\n\r\nexport function getRelationships(document) {\r\n const relationships = document.documentElement\r\n return findChildren(relationships, 'Relationship')\r\n}\r\n\r\nexport function getSheets(document) {\r\n const workbook = document.documentElement\r\n const sheets = findChild(workbook, 'sheets')\r\n return findChildren(sheets, 'sheet')\r\n}"],"mappings":"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"}
1
+ {"version":3,"file":"xlsx.js","names":["findChild","findChildren","forEach","map","isElement","getTagName","getCells","document","worksheet","documentElement","sheetData","cells","row","cell","push","getMergedCells","mergedCells","mergedCellsInfo","mergedCell","getAttribute","getCellValue","node","getCellInlineStringValue","firstChild","textContent","getDimensions","dimensions","getBaseStyles","styleSheet","cellStyleXfs","getCellStyles","cellXfs","getNumberFormats","numberFormats","numFmts","getSharedStrings","sst","string","t","value","r","getWorkbookProperties","workbook","getRelationships","relationships","getSheets","sheets"],"sources":["../../source/xml/xlsx.js"],"sourcesContent":["import { findChild, findChildren, forEach, map, isElement, getTagName } from './dom.js'\r\n\r\n// Returns an array of cells,\r\n// each element being an XML DOM element representing a cell.\r\nexport function getCells(document) {\r\n const worksheet = document.documentElement\r\n const sheetData = findChild(worksheet, 'sheetData')\r\n\r\n const cells = []\r\n forEach(sheetData, 'row', (row) => {\r\n forEach(row, 'c', (cell) => {\r\n cells.push(cell)\r\n })\r\n })\r\n return cells\r\n}\r\n\r\nexport function getMergedCells(document) {\r\n const worksheet = document.documentElement\r\n const mergedCells = findChild(worksheet, 'mergeCells')\r\n const mergedCellsInfo = []\r\n if (mergedCells) {\r\n forEach(mergedCells, 'mergeCell', (mergedCell) => {\r\n mergedCellsInfo.push(mergedCell.getAttribute('ref'))\r\n })\r\n }\r\n return mergedCellsInfo\r\n}\r\n\r\nexport function getCellValue(document, node) {\r\n return findChild(node, 'v')\r\n}\r\n\r\nexport function getCellInlineStringValue(document, node) {\r\n if (\r\n node.firstChild &&\r\n isElement(node.firstChild) &&\r\n getTagName(node.firstChild) === 'is' &&\r\n node.firstChild.firstChild &&\r\n isElement(node.firstChild.firstChild) &&\r\n getTagName(node.firstChild.firstChild) === 't'\r\n ) {\r\n return node.firstChild.firstChild.textContent\r\n }\r\n}\r\n\r\nexport function getDimensions(document) {\r\n const worksheet = document.documentElement\r\n const dimensions = findChild(worksheet, 'dimension')\r\n if (dimensions) {\r\n return dimensions.getAttribute('ref')\r\n }\r\n}\r\n\r\nexport function getBaseStyles(document) {\r\n const styleSheet = document.documentElement\r\n const cellStyleXfs = findChild(styleSheet, 'cellStyleXfs')\r\n if (cellStyleXfs) {\r\n return findChildren(cellStyleXfs, 'xf')\r\n }\r\n return []\r\n}\r\n\r\nexport function getCellStyles(document) {\r\n const styleSheet = document.documentElement\r\n const cellXfs = findChild(styleSheet, 'cellXfs')\r\n if (!cellXfs) {\r\n return []\r\n }\r\n return findChildren(cellXfs, 'xf')\r\n}\r\n\r\nexport function getNumberFormats(document) {\r\n const styleSheet = document.documentElement\r\n let numberFormats = []\r\n const numFmts = findChild(styleSheet, 'numFmts')\r\n if (numFmts) {\r\n return findChildren(numFmts, 'numFmt')\r\n }\r\n return []\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 const sst = document.documentElement\r\n return map(sst, 'si', string => {\r\n const t = findChild(string, 't')\r\n if (t) {\r\n return t.textContent\r\n }\r\n let value = ''\r\n forEach(string, 'r', (r) => {\r\n value += findChild(r, 't').textContent\r\n })\r\n return value\r\n })\r\n}\r\n\r\nexport function getWorkbookProperties(document) {\r\n const workbook = document.documentElement\r\n return findChild(workbook, 'workbookPr')\r\n}\r\n\r\nexport function getRelationships(document) {\r\n const relationships = document.documentElement\r\n return findChildren(relationships, 'Relationship')\r\n}\r\n\r\nexport function getSheets(document) {\r\n const workbook = document.documentElement\r\n const sheets = findChild(workbook, 'sheets')\r\n return findChildren(sheets, 'sheet')\r\n}"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "read-excel-file",
3
- "version": "6.0.0",
3
+ "version": "6.0.2",
4
4
  "description": "Read `*.xlsx` files of moderate size in a web browser or on a server.",
5
5
  "module": "index.js",
6
6
  "main": "index.cjs",
@@ -29,7 +29,7 @@
29
29
  "test": "mocha --colors --bail --reporter spec --require ./test/setup.js \"./{,!(node_modules|commonjs|modules)/**/}*.test.js\" --recursive",
30
30
  "clean-for-build": "rimraf ./commonjs/**/* ./modules/**/*",
31
31
  "build-commonjs-modules": "better-npm-run build-commonjs-modules",
32
- "build-commonjs-package.json": "node runnable/create-commonjs-package-json.js",
32
+ "build-commonjs-package.json": "node build-scripts/create-commonjs-package-json.js",
33
33
  "build-commonjs": "npm-run-all build-commonjs-modules build-commonjs-package.json",
34
34
  "build-es6-modules": "better-npm-run build-es6-modules",
35
35
  "browser-build": "rollup --config rollup.config.mjs",
@@ -1,11 +0,0 @@
1
- // Creates a `package.json` file in the CommonJS `build` folder.
2
- // That marks that whole folder as CommonJS so that Node.js doesn't complain
3
- // about `require()`-ing those files.
4
-
5
- import fs from 'fs'
6
-
7
- fs.writeFileSync('./commonjs/package.json', JSON.stringify({
8
- name: 'read-excel-file/commonjs',
9
- type: 'commonjs',
10
- private: true
11
- }, null, 2), 'utf8')