Skip to content

Commit b7c025a

Browse files
committed
Correct update to named ranges and formulae when inserting/deleting columns/rows
1 parent b9ded91 commit b7c025a

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

src/PhpSpreadsheet/ReferenceHelper.php

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -539,8 +539,17 @@ function ($coordinate) use ($cellCollection) {
539539
// Update workbook: define names
540540
if (count($worksheet->getParent()->getDefinedNames()) > 0) {
541541
foreach ($worksheet->getParent()->getDefinedNames() as $definedName) {
542-
if ($definedName->getWorksheet() !== null && $definedName->getWorksheet()->getHashCode() === $worksheet->getHashCode()) {
543-
$definedName->setValue($this->updateCellReference($definedName->getValue()));
542+
if ($definedName->isFormula() === false) {
543+
$asFormula = ($definedName->getValue()[0] === '=') ? '=' : '';
544+
if ($definedName->getWorksheet() !== null && $definedName->getWorksheet()->getHashCode() === $worksheet->getHashCode()) {
545+
$definedName->setValue($asFormula . $this->updateCellReference(ltrim($definedName->getValue(), '=')));
546+
}
547+
} else {
548+
$formula = $definedName->getValue();
549+
if ($definedName->getWorksheet() !== null && $definedName->getWorksheet()->getHashCode() === $worksheet->getHashCode()) {
550+
$formula = $this->updateFormulaReferences($formula, $beforeCellAddress, $numberOfColumns, $numberOfRows, $worksheet->getTitle());
551+
$definedName->setValue($formula);
552+
}
544553
}
545554
}
546555
}

0 commit comments

Comments
 (0)