MCPcopy
hub / github.com/dilshod/xlsx2csv / parse

Method parse

xlsx2csv.py:535–564  ·  view source on GitHub ↗
(self, filehandle)

Source from the content-addressed store, hash-verified

533 self.cellXfs = []
534
535 def parse(self, filehandle):
536 styles = minidom.parseString(filehandle.read()).firstChild
537 # numFmts
538 if styles.namespaceURI:
539 numFmtsElement = styles.getElementsByTagNameNS(styles.namespaceURI, "numFmts")
540 else:
541 numFmtsElement = styles.getElementsByTagName("numFmts")
542 if len(numFmtsElement) == 1:
543 for numFmt in numFmtsElement[0].childNodes:
544 if numFmt.nodeType == minidom.Node.ELEMENT_NODE:
545 numFmtId = int(numFmt._attrs['numFmtId'].value)
546 formatCode = numFmt._attrs['formatCode'].value.lower().replace('\\', '')
547 self.numFmts[numFmtId] = formatCode
548
549 if styles.namespaceURI:
550 cellXfsElement = styles.getElementsByTagNameNS(styles.namespaceURI, "cellXfs")
551 else:
552 cellXfsElement = styles.getElementsByTagName("cellXfs")
553 if len(cellXfsElement) == 1:
554 for cellXfs in cellXfsElement[0].childNodes:
555 if cellXfs.nodeType != minidom.Node.ELEMENT_NODE or not (
556 cellXfs.nodeName == "xf" or cellXfs.nodeName.endswith(":xf")):
557 continue
558 if cellXfs._attrs and 'numFmtId' in cellXfs._attrs:
559 numFmtId = int(cellXfs._attrs['numFmtId'].value)
560 if self.chk_exists(numFmtId) == None:
561 numFmtId = int(cellXfs._attrs['applyNumberFormat'].value)
562 self.cellXfs.append(numFmtId)
563 else:
564 self.cellXfs.append(None)
565
566 # When Unknown Numformat ID assign applyNumberFormat
567 def chk_exists(self, numFmtId):

Callers 1

_parseMethod · 0.45

Calls 1

chk_existsMethod · 0.95

Tested by

no test coverage detected