From 992d6aefdebfe63db1b6f04bc521221e8b2805a6 Mon Sep 17 00:00:00 2001 From: Vasily Toropov Date: Thu, 25 Jun 2015 17:25:46 +1000 Subject: [PATCH] Fixed range calculation on sheets with exclamation marks (!) in names --- Classes/PHPExcel/Calculation.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Classes/PHPExcel/Calculation.php b/Classes/PHPExcel/Calculation.php index 307db191b..8cc928f3c 100644 --- a/Classes/PHPExcel/Calculation.php +++ b/Classes/PHPExcel/Calculation.php @@ -3573,12 +3573,16 @@ private function processTokenStack($tokens, $cellID = null, PHPExcel_Cell $pCell case ':': // Range $sheet1 = $sheet2 = ''; if (strpos($operand1Data['reference'], '!') !== false) { - list($sheet1, $operand1Data['reference']) = explode('!', $operand1Data['reference']); + $parts = explode('!', $operand1Data['reference']); + $operand1Data['reference'] = array_pop($parts); + $sheet1 = implode('!', $parts); } else { $sheet1 = ($pCellParent !== null) ? $pCellWorksheet->getTitle() : ''; } if (strpos($operand2Data['reference'], '!') !== false) { - list($sheet2, $operand2Data['reference']) = explode('!', $operand2Data['reference']); + $parts = explode('!', $operand2Data['reference']); + $operand2Data['reference'] = array_pop($parts); + $sheet2 = implode('!', $parts); } else { $sheet2 = $sheet1; }