diff --git a/src/PhpSpreadsheet/Reader/Xlsx.php b/src/PhpSpreadsheet/Reader/Xlsx.php index 124cc3b252..4222b95422 100644 --- a/src/PhpSpreadsheet/Reader/Xlsx.php +++ b/src/PhpSpreadsheet/Reader/Xlsx.php @@ -488,7 +488,7 @@ public function load($pFilename) } if (!$this->readDataOnly && $xmlStyles) { foreach ($xmlStyles->cellXfs->xf as $xf) { - $numFmt = NumberFormat::FORMAT_GENERAL; + $numFmt = null; if ($xf['numFmtId']) { if (isset($numFmts)) { @@ -503,6 +503,7 @@ public function load($pFilename) // But there's a lot of naughty homebrew xlsx writers that do use "reserved" id values that aren't actually used // So we make allowance for them rather than lose formatting masks if ( + $numFmt === null && (int) $xf['numFmtId'] < 164 && NumberFormat::builtInFormatCode((int) $xf['numFmtId']) !== '' ) { @@ -515,7 +516,7 @@ public function load($pFilename) } $style = (object) [ - 'numFmt' => $numFmt, + 'numFmt' => $numFmt === null ? NumberFormat::FORMAT_GENERAL : $numFmt, 'font' => $xmlStyles->fonts->font[(int) ($xf['fontId'])], 'fill' => $xmlStyles->fills->fill[(int) ($xf['fillId'])], 'border' => $xmlStyles->borders->border[(int) ($xf['borderId'])],