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() 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 2b0b57ae4..26f871994 100644 --- a/Classes/PHPExcel/Worksheet.php +++ b/Classes/PHPExcel/Worksheet.php @@ -2652,14 +2652,18 @@ 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 ''; } 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) ); } 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