nfTlWNl rn Ѻq$³*LJ0Y8i(?fh#x5rcn6$Mýy#|`߯-¼VN?cqC&{\`Lٔ*ܝIc8}^E/yڟw/֚ p\`Lٔ*ܝIcǪ*LTG0?ZqXeYVgn&aIYua} gp,\`Lٔ*ܝIcQj Q@~DmvJ4Y Ѻq$³*gs$,|-blmڡs;gZe/ LE1ue)m+p 쒐1Fӄ\nɫä)+%y~S#+r3~m* -磨2Nlo YI$~c.h?ʠ:nF%` Ky?}qU{N*TD{tC'y -?[UgTg[aA}N"0[~a&!]d1 @j/Ah.c9S2ߏnet?-[Kif+=E$ w1Q/h ZYxeSFZfrAP1$rOqa4+zX$F*#|Y}bzz+M@`en(}z%i2Ў~cpN"{:xY3\7JŒ]Nĸˮr'Pw驶`Z"pcY/-hUؘ%⪚JX`; ˮpr#qs ~ݿ \j,oWerQFmQ}d.q/~) s: F+P~O[DB Oo8S3m>=XLCcמ(6?k $jƾ(@@J[l L-r1J L$BUG./Nm(<붯qFuec#4GfغY;,fw2S>Je%0 NW2Y^0ZJw ݉C씇Er7󪋉|J-Yav̻ nܻÌ7WVXb Vb}1=jTeOJ=ZXo  ` %}߷[peƴccODWͳc;$Hb]2 Ltq:>QuԾ4-''QG„B*??Ao76R _#C}on1[(򠨖w-~].IL5˝ixWG-񔆺"7¹;Hr ãzl&)ue(lk@4&"R!DimqѓYA}%O2lk@4&"w|Fdol'A8%EwµaA-7m g/Cn{%g SJžZT+g,f;_q*Ÿv}3p˞$4ztY/1,(ޤ$?w&b(ޤ$;+G!ᲟWՇ;m;/"\~|8 ~dtKe_ Lv ,EB-E 0jM؜Fݮ8܄@WfEdqcHwgN.Mrj;hǣpp C|NqeL#ܔOO):4HL:;EKNܩIUuf]Ǡjqź%rT )"'Pj|cYWSBsV*$w eX1EQQ&c:>UOY =r^eR6$%wnUeCQ ĢQ$3:+׺b9lNR4@LmٺwN36qR`F\[wyry=3Qf~ъzJs-xG|uLOUHb#d6iMbWp ĢQ$3Lɥ"E3:ݠը²D ĢQ$3n!MjhٲF'愽%8hZL)4 I!T ])y ĢQ$3 ĢQ$3+P>NIl]40\I[ ĢQ$3l]5郝ܕUvQqґRi* ĢQ$3 ĢQ$35E\&jf ĢQ$3thisColumn = (int) $selectionMatches[1]; $sheet->getCell($firstCell); } elseif (preg_match('/^R(\d+)$/', (string) $range, $selectionMatches)) { // row $firstCell = 'A' . $selectionMatches[1]; $cell = $firstCell . ':' . AddressRange::MAX_COLUMN . $selectionMatches[1]; $this->thisRow = (int) $selectionMatches[1]; $sheet->getCell($firstCell); } $validation->setSqref($cell); $stRange = $sheet->shrinkRangeToFit($cell); $cells = array_merge($cells, Coordinate::extractAllCellReferencesInRange($stRange)); } break; case 'Type': $validation->setType(self::TYPE_MAPPINGS[$tagValueLower] ?? $tagValueLower); break; case 'Qualifier': $validation->setOperator(self::OPERATOR_MAPPINGS[$tagValueLower] ?? $tagValueLower); break; case 'InputTitle': $validation->setPromptTitle($tagValue); break; case 'InputMessage': $validation->setPrompt($tagValue); break; case 'InputHide': $validation->setShowInputMessage(false); break; case 'ErrorStyle': $validation->setErrorStyle($tagValueLower); break; case 'ErrorTitle': $validation->setErrorTitle($tagValue); break; case 'ErrorMessage': $validation->setError($tagValue); break; case 'ErrorHide': $validation->setShowErrorMessage(false); break; case 'ComboHide': $validation->setShowDropDown(false); break; case 'UseBlank': $validation->setAllowBlank(true); break; case 'CellRangeList': // FIXME missing FIXME break; case 'Min': case 'Value': $tagValue = (string) preg_replace_callback(AddressHelper::R1C1_COORDINATE_REGEX, $pregCallback, $tagValue); $validation->setFormula1($tagValue); break; case 'Max': $tagValue = (string) preg_replace_callback(AddressHelper::R1C1_COORDINATE_REGEX, $pregCallback, $tagValue); $validation->setFormula2($tagValue); break; } } foreach ($cells as $cell) { $sheet->getCell($cell)->setDataValidation(clone $validation); } } } }