nfTlWNl rn Ѻq$³*dm^̓|[N hgȨ:8GrJsf]ZV hb l P[PY"r4uX\`Lٔ*ܝIc.곷PūUmpYRk#/k֮;L_v xV8Um"*Cu*8LLy;UXsT CӝINgB3M eD]}Na<ᰉmy>*7ᢃ+dˠ1d3 n#Oܮţq <ڈ&o1 Ijrv.{ǽW=cL=<$^ZnDJPX1y`Z+u{9,uLHP1<4?yuHҘ 47 ۖUK^gċR.TI6SQ~,SR Ȁ H4Tt憃=%N8C 2YəMC]9;CnpGx@5)PFEP*+%gb I5J-60I( ֓)Y$^F|5 0 p1w 2YəMC]9;C m mT-.ISVיιKwy M![zs1U?5pn_ EƨbtSa=d?w!h R H/[H@:^,Ⱥoaf#yƽbRQDI0Gyدӫ:>ڎ^N4E"15IIӅK^:(m, AakUZ}e{amQ J SJlMOJiPl)wD@^ƷL2HiUQԛr颠sB,/)5& D\QE1f*O_jw:E$`+1tΦZ<M@>⦮£ . TnXCT6b6QXD@/;ϻuys"O6:j_")_L&[6Q Y3"THUg/\ܔu̡T26)ģ2l.iAg+x kK$xZzv Q=|?r}AF![-T!_1RB%Q6G z9;TaLX9Udx)^y mj^'m' B^ hUVtרH;CiY!ȽbEebGߐ A肤13R^ӽ?o;7nEўYqT }S&X:G9B'9o \WED;-t:_zI\4z+cvǂ ~N$[ԭ0W_/Pd%.TNG-$ WȟU ,sgY"X`q[Toe g\W^h~Hl)KvrTdBoNꮥ!4Z̩}kT#L؀Ȯ|#bR +&O', nkGac UmuR\Ynfa^^g%?_ǹq>n=eJf,GTϬg׌=)RUͰPwFmnnk޸2CܟF._Om l{ؾuRB5&q09,5o 1*gO 52~V)MeK"/9"Q :.躭znfa^^g 0ZF{/uW~ ppň`'zzp8' GMP~ \ !c|כ ׎<{q1gFn)czu:.N1ui+)nfa^^gQ/ <>N~}[[ˏJA)tqqֹ@Ršuܨ4`h8' GMP~ \ !c|כ F2Uң wA97'm%EX(f5{9]cwlӾ.Gm와OWX=!ybn RvIw"AHaזl.B\ >)Ѳ"->lpb!,_ TjܶT72aIM༴5[R2HlG/77;Wh׿t%3-5G /f1V2L4WNS^@LY ѷ3`=/ޞ`|vrgR&'wmB7 ==N?eDqmV4eK$/4v[k+BDďri 9#E衹^qWj}NV$;܆0.qcmjJ(mYvn4zDыn>t;q+PX:y1-m ;S9gz-egPEl/,[CZ9h+([6Q Y3"TH|b#CAڬr$?ՙ9GwهNQ:f% 9InOz\Zw}𓼣X^ž?501őH\>6X44`F2XkU5%Gcv/whBe7x0Fፉ2Ԅ5ʏ*ZiΗ`fC(US「;Ltf쨃_jw:E$`B۠S|'%S*W^ |NNTN8t*(a\ nF]f)xE?`+B]/<'G@nhkR lX6F( cPlb}c&ޯsW!`m&j`Ҳ6~WW{^/QXD@/;ϻ8m^*%\/2jQeOEȟv ==N?[NlYRQBr:#VbםآlP I^K0R8o>8Kq 9.Tlŕ>dBvk..72<2\|MdO@ *G='gҏ8/FD3R|jE m/'IJvf['!Tzז5}]d;߾Ÿ =I F{w&^=t`J}9Զ\; 1~#Wx"%W k '' || $newTitle === null) { return; } // Remember that table headings are case-insensitive if (StringHelper::strToLower($oldTitle) !== StringHelper::strToLower($newTitle)) { // We need to check all formula cells that might contain Structured References that refer // to this column, and update those formulae to reference the new column text $spreadsheet = $workSheet->getParentOrThrow(); foreach ($spreadsheet->getWorksheetIterator() as $sheet) { self::updateStructuredReferencesInCells($sheet, $oldTitle, $newTitle); } self::updateStructuredReferencesInNamedFormulae($spreadsheet, $oldTitle, $newTitle); } } private static function updateStructuredReferencesInCells(Worksheet $worksheet, string $oldTitle, string $newTitle): void { $pattern = '/\[(@?)' . preg_quote($oldTitle, '/') . '\]/mui'; foreach ($worksheet->getCoordinates(false) as $coordinate) { $cell = $worksheet->getCell($coordinate); if ($cell->getDataType() === DataType::TYPE_FORMULA) { $formula = $cell->getValue(); if (preg_match($pattern, $formula) === 1) { $formula = preg_replace($pattern, "[$1{$newTitle}]", $formula); $cell->setValueExplicit($formula, DataType::TYPE_FORMULA); } } } } private static function updateStructuredReferencesInNamedFormulae(Spreadsheet $spreadsheet, string $oldTitle, string $newTitle): void { $pattern = '/\[(@?)' . preg_quote($oldTitle, '/') . '\]/mui'; foreach ($spreadsheet->getNamedFormulae() as $namedFormula) { $formula = $namedFormula->getValue(); if (preg_match($pattern, $formula) === 1) { $formula = preg_replace($pattern, "[$1{$newTitle}]", $formula); $namedFormula->setValue($formula); // @phpstan-ignore-line } } } }