Bugfix: Work Item CP18105 - Loading an Excel 2007 spreadsheet throws an "Autofilter must be set on a range of cells" exception

Fix to jpgraph path for Chart Rendering tests
This commit is contained in:
MarkBaker 2014-07-27 15:18:00 +01:00
parent ab693eafcd
commit d9fa784e1b
3 changed files with 17 additions and 3 deletions

View File

@ -1007,7 +1007,13 @@ class PHPExcel_Reader_Excel2007 extends PHPExcel_Reader_Abstract implements PHPE
if ($xmlSheet && $xmlSheet->autoFilter && !$this->_readDataOnly) { if ($xmlSheet && $xmlSheet->autoFilter && !$this->_readDataOnly) {
$autoFilter = $docSheet->getAutoFilter(); $autoFilter = $docSheet->getAutoFilter();
$autoFilter->setRange((string) $xmlSheet->autoFilter["ref"]);
$autoFilterRange = (string) $xmlSheet->autoFilter["ref"];
if (strpos($autoFilterRange, ':') === false) {
$autoFilterRange = "${autoFilterRange}:${autoFilterRange}";
}
$autoFilter->setRange($autoFilterRange);
foreach ($xmlSheet->autoFilter->filterColumn as $filterColumn) { foreach ($xmlSheet->autoFilter->filterColumn as $filterColumn) {
$column = $autoFilter->getColumnByOffset((integer) $filterColumn["colId"]); $column = $autoFilter->getColumnByOffset((integer) $filterColumn["colId"]);
// Check for standard filters // Check for standard filters
@ -1575,7 +1581,14 @@ class PHPExcel_Reader_Excel2007 extends PHPExcel_Reader_Abstract implements PHPE
case '_xlnm._FilterDatabase': case '_xlnm._FilterDatabase':
if ((string)$definedName['hidden'] !== '1') { if ((string)$definedName['hidden'] !== '1') {
$docSheet->getAutoFilter()->setRange($extractedRange); $extractedRange = explode(',', $extractedRange);
foreach ($extractedRange as $range) {
$autoFilterRange = $range;
if (strpos($autoFilterRange, ':') === false) {
$autoFilterRange = "${autoFilterRange}:${autoFilterRange}";
}
$docSheet->getAutoFilter()->setRange($autoFilterRange);
}
} }
break; break;

View File

@ -46,7 +46,7 @@ include 'PHPExcel/IOFactory.php';
// Change these values to select the Rendering library that you wish to use // Change these values to select the Rendering library that you wish to use
// and its directory location on your server // and its directory location on your server
$rendererName = PHPExcel_Settings::CHART_RENDERER_JPGRAPH; $rendererName = PHPExcel_Settings::CHART_RENDERER_JPGRAPH;
$rendererLibrary = 'jpgraph3.5.0b1/src'; $rendererLibrary = 'jpgraph3.5.0b1/src/';
$rendererLibraryPath = '/php/libraries/Charts/' . $rendererLibrary; $rendererLibraryPath = '/php/libraries/Charts/' . $rendererLibrary;

View File

@ -28,6 +28,7 @@ Planned for v1.8.1
- Bugfix: (ymaerschalck) Work Item GH-405 - XML External Entity (XXE) Processing, different behaviour between simplexml_load_string() and simplexml_load_file(). - Bugfix: (ymaerschalck) Work Item GH-405 - XML External Entity (XXE) Processing, different behaviour between simplexml_load_string() and simplexml_load_file().
- Bugfix: (MBaker) - Fix to ensure that current cell is maintained when executing formula calculations - Bugfix: (MBaker) - Fix to ensure that current cell is maintained when executing formula calculations
- Bugfix: (MBaker) Work Item GH-350 - Keep/set the value on Reader _loadSheetsOnly as NULL, courtesy of Restless-ET - Bugfix: (MBaker) Work Item GH-350 - Keep/set the value on Reader _loadSheetsOnly as NULL, courtesy of Restless-ET
- Bugfix: (MBaker) Work Item CP18105 - Loading an Excel 2007 spreadsheet throws an "Autofilter must be set on a range of cells" exception
- General: (MBaker) - Small performance improvement for autosize columns - General: (MBaker) - Small performance improvement for autosize columns
- General: (frost-nzcr4) Work Item GH-379 - Change the getter/setter for zeroHeight to camel case - General: (frost-nzcr4) Work Item GH-379 - Change the getter/setter for zeroHeight to camel case
- Feature: (WiktrzGE) Work Item GH-404 - Methods to manage most of the existing options for Chart Axis, Major Grid-lines and Minor Grid-lines - Feature: (WiktrzGE) Work Item GH-404 - Methods to manage most of the existing options for Chart Axis, Major Grid-lines and Minor Grid-lines