AutorÃa | Ultima modificación | Ver Log |
<?phpnamespace PhpOffice\PhpSpreadsheet\Reader\Xml\Style;use PhpOffice\PhpSpreadsheet\Style\Fill as FillStyles;use SimpleXMLElement;class Fill extends StyleBase{/*** @var array*/public const FILL_MAPPINGS = ['fillType' => ['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;}}