From a4d7997356a46c522ec7bfb2cda428a67d745b40 Mon Sep 17 00:00:00 2001 From: MarkBaker Date: Thu, 30 Apr 2015 23:55:27 +0100 Subject: [PATCH 1/4] version function --- Classes/PHPExcel/Calculation/Functions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/PHPExcel/Calculation/Functions.php b/Classes/PHPExcel/Calculation/Functions.php index 7f6240141..dea1503b8 100644 --- a/Classes/PHPExcel/Calculation/Functions.php +++ b/Classes/PHPExcel/Calculation/Functions.php @@ -496,7 +496,7 @@ public static function IS_NONTEXT($value = NULL) { * @return string Version information */ public static function VERSION() { - return 'PHPExcel ##VERSION##, ##DATE##'; + return 'PHPExcel 1.8.1, 2015-04-30'; } // function VERSION() From c9f2ee522bdddf443845bdedb8e77e3ff8799c6e Mon Sep 17 00:00:00 2001 From: MarkBaker Date: Fri, 1 May 2015 08:00:24 +0100 Subject: [PATCH 2/4] Abstract function PHPExcel_Worksheet_CellIterator::adjustForExistingOnlyRange() cannot contain body --- Classes/PHPExcel/Worksheet/CellIterator.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Classes/PHPExcel/Worksheet/CellIterator.php b/Classes/PHPExcel/Worksheet/CellIterator.php index 77c5d2e31..239cb4ff1 100644 --- a/Classes/PHPExcel/Worksheet/CellIterator.php +++ b/Classes/PHPExcel/Worksheet/CellIterator.php @@ -79,8 +79,7 @@ public function getIterateOnlyExistingCells() { * * @throws PHPExcel_Exception */ - abstract protected function adjustForExistingOnlyRange() { - } + abstract protected function adjustForExistingOnlyRange(); /** * Set the iterator to loop only existing cells From 0b206d2b9caa9b5ac5a8ef9412f4d0ea4ab35115 Mon Sep 17 00:00:00 2001 From: Mike Smith Date: Wed, 17 Feb 2016 11:27:47 +0000 Subject: [PATCH 3/4] + handle the OFFSET formula in range definitions for retrieving sheet title --- Classes/PHPExcel/Worksheet.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Classes/PHPExcel/Worksheet.php b/Classes/PHPExcel/Worksheet.php index 2b0b57ae4..040d0a54f 100644 --- a/Classes/PHPExcel/Worksheet.php +++ b/Classes/PHPExcel/Worksheet.php @@ -2652,6 +2652,9 @@ public function getHashCode() { * @return mixed */ public static function extractSheetTitle($pRange, $returnRange = false) { + if (substr($pRange,0, strlen('OFFSET(')) === 'OFFSET(') + $pRange = substr($pRange, strlen('OFFSET(')); + // Sheet title included? if (($sep = strpos($pRange, '!')) === false) { return ''; From 228f376cca5d6072e336da7117e1311b882e4135 Mon Sep 17 00:00:00 2001 From: Mike Smith Date: Wed, 17 Feb 2016 14:17:58 +0000 Subject: [PATCH 4/4] + handle ranges for the dynaminc named range --- Classes/PHPExcel/Reader/Excel2007.php | 10 ++++++---- Classes/PHPExcel/Worksheet.php | 3 ++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Classes/PHPExcel/Reader/Excel2007.php b/Classes/PHPExcel/Reader/Excel2007.php index e41596afc..a05241ae0 100644 --- a/Classes/PHPExcel/Reader/Excel2007.php +++ b/Classes/PHPExcel/Reader/Excel2007.php @@ -1641,6 +1641,7 @@ public function load($pFilename) $extractedRange = preg_replace('/\'(\w+)\'\!/', '', $extractedRange); if (($spos = strpos($extractedRange,'!')) !== false) { $extractedRange = substr($extractedRange,0,$spos).str_replace('$', '', substr($extractedRange,$spos)); + } else { $extractedRange = str_replace('$', '', $extractedRange); } @@ -1682,15 +1683,16 @@ public function load($pFilename) $extractedSheetName = ''; if (strpos( (string)$definedName, '!' ) !== false) { // Extract sheet name - $extractedSheetName = PHPExcel_Worksheet::extractSheetTitle( (string)$definedName, true ); - $extractedSheetName = $extractedSheetName[0]; + $extraction = PHPExcel_Worksheet::extractSheetTitle( (string)$definedName, true ); + + $extractedSheetName = $extraction[0]; + $extractedRange = $extraction[1]; // Locate sheet $locatedSheet = $excel->getSheetByName($extractedSheetName); // Modify range - $range = explode('!', $extractedRange); - $extractedRange = isset($range[1]) ? $range[1] : $range[0]; + $extractedRange = str_replace('$', '', $extractedRange); } if ($locatedSheet !== NULL) { diff --git a/Classes/PHPExcel/Worksheet.php b/Classes/PHPExcel/Worksheet.php index 040d0a54f..26f871994 100644 --- a/Classes/PHPExcel/Worksheet.php +++ b/Classes/PHPExcel/Worksheet.php @@ -2661,8 +2661,9 @@ public static function extractSheetTitle($pRange, $returnRange = false) { } if ($returnRange) { + $comma = strpos(substr($pRange, $sep + 1), ',') ?: -1; return array( trim(substr($pRange, 0, $sep),"'"), - substr($pRange, $sep + 1) + substr($pRange, $sep + 1, $comma) ); }