diff --git a/src/PhpSpreadsheet/Calculation/Functions.php b/src/PhpSpreadsheet/Calculation/Functions.php index dc6ee82e..8075811f 100644 --- a/src/PhpSpreadsheet/Calculation/Functions.php +++ b/src/PhpSpreadsheet/Calculation/Functions.php @@ -705,8 +705,8 @@ class Functions public static function trimSheetFromCellReference(string $coordinate): string { - while (strpos($coordinate, '!') !== false) { - $coordinate = substr($coordinate, strpos($coordinate, '!') + 1); + if (strpos($coordinate, '!') !== false) { + $coordinate = substr($coordinate, strrpos($coordinate, '!') + 1); } return $coordinate; diff --git a/src/PhpSpreadsheet/Cell/CellAddress.php b/src/PhpSpreadsheet/Cell/CellAddress.php index d587dcd1..069c9ac9 100644 --- a/src/PhpSpreadsheet/Cell/CellAddress.php +++ b/src/PhpSpreadsheet/Cell/CellAddress.php @@ -47,15 +47,9 @@ class CellAddress */ private static function validateColumnAndRow($columnId, $rowId): void { - $array = [$columnId, $rowId]; - array_walk( - $array, - function ($value): void { - if (!is_numeric($value) || $value <= 0) { - throw new Exception('Row and Column Ids must be positive integer values'); - } - } - ); + if (!is_numeric($columnId) || $columnId <= 0 || !is_numeric($rowId) || $rowId <= 0) { + throw new Exception('Row and Column Ids must be positive integer values'); + } } /**