[ 'solid' => FillStyles::FILL_SOLID, 'gray75' => FillStyles::FILL_PATTERN_DARKGRAY, 'gray50' => FillStyles::FILL_PATTERN_MEDIUMGRAY, 'gray25' => FillStyles::FILL_PATTERN_LIGHTGRAY, 'gray125' => FillStyles::FILL_PATTERN_GRAY125, 'gray0625' => FillStyles::FILL_PATTERN_GRAY0625, 'horzstripe' => FillStyles::FILL_PATTERN_DARKHORIZONTAL, // horizontal stripe 'vertstripe' => FillStyles::FILL_PATTERN_DARKVERTICAL, // vertical stripe 'reversediagstripe' => FillStyles::FILL_PATTERN_DARKUP, // reverse diagonal stripe 'diagstripe' => FillStyles::FILL_PATTERN_DARKDOWN, // diagonal stripe 'diagcross' => FillStyles::FILL_PATTERN_DARKGRID, // diagoanl crosshatch 'thickdiagcross' => FillStyles::FILL_PATTERN_DARKTRELLIS, // thick diagonal crosshatch 'thinhorzstripe' => FillStyles::FILL_PATTERN_LIGHTHORIZONTAL, 'thinvertstripe' => FillStyles::FILL_PATTERN_LIGHTVERTICAL, 'thinreversediagstripe' => FillStyles::FILL_PATTERN_LIGHTUP, 'thindiagstripe' => FillStyles::FILL_PATTERN_LIGHTDOWN, 'thinhorzcross' => FillStyles::FILL_PATTERN_LIGHTGRID, // thin horizontal crosshatch 'thindiagcross' => FillStyles::FILL_PATTERN_LIGHTTRELLIS, // thin diagonal crosshatch ], ]; public function parseStyle(SimpleXMLElement $styleAttributes): array { $style = []; foreach ($styleAttributes as $styleAttributeKey => $styleAttributeValuex) { $styleAttributeValue = (string) $styleAttributeValuex; switch ($styleAttributeKey) { case 'Color': $style['fill']['endColor']['rgb'] = substr($styleAttributeValue, 1); $style['fill']['startColor']['rgb'] = substr($styleAttributeValue, 1); break; case 'PatternColor': $style['fill']['startColor']['rgb'] = substr($styleAttributeValue, 1); break; case 'Pattern': $lcStyleAttributeValue = strtolower((string) $styleAttributeValue); $style['fill']['fillType'] = self::FILL_MAPPINGS['fillType'][$lcStyleAttributeValue] ?? FillStyles::FILL_NONE; break; } } return $style; } }