From 83afa87bf3d714833d5a58d322f1ff6f0b2a128e Mon Sep 17 00:00:00 2001 From: Mark Baker Date: Wed, 15 Aug 2012 13:20:34 +0100 Subject: [PATCH] Fixed broken build after recent autofilter changes --- Classes/PHPExcel/Reader/Excel2007.php | 1 - Classes/PHPExcel/Worksheet/AutoFilter.php | 258 ++++++++++++++++++ .../PHPExcel/Worksheet/AutoFilter/Column.php | 5 +- .../PHPExcel/Writer/Excel2007/Workbook.php | 5 +- .../PHPExcel/Writer/Excel2007/Worksheet.php | 10 +- Classes/PHPExcel/Writer/Excel5.php | 9 +- Classes/PHPExcel/Writer/Excel5/Workbook.php | 5 +- Classes/PHPExcel/Writer/Excel5/Worksheet.php | 4 +- Classes/PHPExcel/Writer/HTML.php | 3 +- .../PHPExcel developer documentation.doc | Bin 807424 -> 815616 bytes 10 files changed, 282 insertions(+), 18 deletions(-) diff --git a/Classes/PHPExcel/Reader/Excel2007.php b/Classes/PHPExcel/Reader/Excel2007.php index 94655a0e..fc055992 100644 --- a/Classes/PHPExcel/Reader/Excel2007.php +++ b/Classes/PHPExcel/Reader/Excel2007.php @@ -1193,7 +1193,6 @@ class PHPExcel_Reader_Excel2007 implements PHPExcel_Reader_IReader } } } - var_dump($autoFilter); } if ($xmlSheet && $xmlSheet->mergeCells && $xmlSheet->mergeCells->mergeCell && !$this->_readDataOnly) { diff --git a/Classes/PHPExcel/Worksheet/AutoFilter.php b/Classes/PHPExcel/Worksheet/AutoFilter.php index cb7a1680..f5a48cd9 100644 --- a/Classes/PHPExcel/Worksheet/AutoFilter.php +++ b/Classes/PHPExcel/Worksheet/AutoFilter.php @@ -239,6 +239,264 @@ class PHPExcel_Worksheet_AutoFilter return $this; } + private static function _filterTestInSimpleDataSet($cellValue,$dataSet) + { + $dataSetValues = $dataSet['filterValues']; + $blanks = $dataSet['blanks']; + if (($cellValue == '') || ($cellValue === NULL)) { + return $blanks; + } + return in_array($cellValue,$dataSetValues); + } + + private static function _filterTestInDateGroupSet($cellValue,$dataSet) + { + $dateSet = $dataSet['filterValues']; + $blanks = $dataSet['blanks']; + if (($cellValue == '') || ($cellValue === NULL)) { + return $blanks; + } + if (is_numeric($cellValue)) { + $dateValue = PHPExcel_Shared_Date::ExcelToPHP($cellValue); + if ($cellValue < 1) { + // Just the time part + $dtVal = date('His',$dateValue); + $dateSet = $dateSet['time']; + } elseif($cellValue == floor($cellValue)) { + // Just the date part + $dtVal = date('Ymd',$dateValue); + $dateSet = $dateSet['date']; + } else { + // date and time parts + $dtVal = date('YmdHis',$dateValue); + $dateSet = $dateSet['dateTime']; + } + foreach($dateSet as $dateValue) { + // Use of substr to extract value at the appropriate group level + if (substr($dtVal,0,strlen($dateValue)) == $dateValue) + return TRUE; + } + } + + return FALSE; + } + + private static function _filterTypeCustomFilters($cellValue,$ruleSet) + { + $dataSet = $ruleSet['filterRules']; + $join = $ruleSet['join']; + + $returnVal = ($join == PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_ANDOR_AND); + foreach($dataSet as $rule) { + if (is_numeric($rule['value'])) { + // Numeric values are tested using the appropriate operator + switch ($rule['operator']) { + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL : + $retVal = ($cellValue == $rule['value']); + break; + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_NOTEQUAL : + $retVal = ($cellValue != $rule['value']); + break; + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_GREATERTHAN : + $retVal = ($cellValue > $rule['value']); + break; + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL : + $retVal = ($cellValue >= $rule['value']); + break; + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_LESSTHAN : + $retVal = ($cellValue < $rule['value']); + break; + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_LESSTHANOREQUAL : + $retVal = ($cellValue <= $rule['value']); + break; + } + } else { + // String values are always tested for equality + $retVal = preg_match('/^'.$rule['value'].'$/',$cellValue); + } + // If there are multiple conditions, then we need to test both using the appropriate join operator + switch ($join) { + case PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_ANDOR_OR : + $returnVal = $returnVal || $retVal; + // Break as soon as we have a match for OR joins + if ($returnVal) + return $returnVal; + break; + case PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_ANDOR_AND : + $returnVal = $returnVal && $retVal; + break; + } + } + + return $returnVal; + } + + private static function _filterTypeDynamicFilters($cellValue,$testSet) + { + return TRUE; + } + + private static function _filterTypeTopTenFilters($cellValue,$testSet) + { + return TRUE; + } + + private static $_fromReplace = array('\*', '\?', '~~', '~.*', '~.?'); + private static $_toReplace = array('.*', '.', '~', '\*', '\?'); + + /** + * Apply the AutoFilter rules to the AutoFilter Range + * + * @throws PHPExcel_Exception + * @return PHPExcel_Worksheet_AutoFilter + */ + public function showHideRows() + { + list($rangeStart,$rangeEnd) = PHPExcel_Cell::rangeBoundaries($this->_range); + + // The heading row should always be visible + echo 'AutoFilter Heading Row ',$rangeStart[1],' is always SHOWN',PHP_EOL; + $this->_workSheet->getRowDimension($rangeStart[1])->setVisible(TRUE); + + $columnFilterTests = array(); + foreach($this->_columns as $columnID => $filterColumn) { + $rules = $filterColumn->getRules(); + switch ($filterColumn->getFilterType()) { + case PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER : + $ruleValues = array(); + // Build a list of the filter value selections + foreach($rules as $rule) { + $ruleType = $rule->getRuleType(); + $ruleValues[] = $rule->getValue(); + } + // Test if we want to include blanks in our filter criteria + $blanks = FALSE; + $ruleDataSet = array_filter($ruleValues); + if (count($ruleValues) != count($ruleDataSet)) + $blanks = TRUE; + if ($ruleType == PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_FILTER) { + // Filter on absolute values + $columnFilterTests[$columnID] = array( + 'method' => '_filterTestInSimpleDataSet', + 'arguments' => array( 'filterValues' => $ruleDataSet, + 'blanks' => $blanks + ) + ); + } else { + // Filter on date group values + $arguments = array(); + foreach($ruleDataSet as $ruleValue) { + $date = $time = ''; + if ((isset($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_YEAR])) && + ($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_YEAR] !== '')) + $date .= sprintf('%04d',$ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_YEAR]); + if ((isset($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_MONTH])) && + ($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_MONTH] != '')) + $date .= sprintf('%02d',$ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_MONTH]); + if ((isset($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_DAY])) && + ($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_DAY] !== '')) + $date .= sprintf('%02d',$ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_DAY]); + if ((isset($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_HOUR])) && + ($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_HOUR] !== '')) + $time .= sprintf('%02d',$ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_HOUR]); + if ((isset($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_MINUTE])) && + ($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_MINUTE] !== '')) + $time .= sprintf('%02d',$ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_MINUTE]); + if ((isset($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_SECOND])) && + ($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_SECOND] !== '')) + $time .= sprintf('%02d',$ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_SECOND]); + $dateTime = $date . $time; + $arguments['date'][] = $date; + $arguments['time'][] = $time; + $arguments['dateTime'][] = $dateTime; + } + // Remove empty elements + $arguments['date'] = array_filter($arguments['date']); + $arguments['time'] = array_filter($arguments['time']); + $arguments['dateTime'] = array_filter($arguments['dateTime']); + $columnFilterTests[$columnID] = array( + 'method' => '_filterTestInDateGroupSet', + 'arguments' => array( 'filterValues' => $arguments, + 'blanks' => $blanks + ) + ); + } + break; + case PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER : + $ruleValues = array(); + // Build a list of the filter value selections + foreach($rules as $rule) { + $ruleType = $rule->getRuleType(); + $ruleValue = $rule->getValue(); + if (!is_numeric($ruleValue)) { + // Convert to a regexp allowing for regexp reserved characters, wildcards and escaped wildcards +var_dump($ruleValue); +echo ' = > '; + $ruleValue = preg_quote($ruleValue); +var_dump($ruleValue); +echo ' = > '; + $ruleValue = str_replace(self::$_fromReplace,self::$_toReplace,$ruleValue); +var_dump($ruleValue); + } + $ruleValues[] = array( 'operator' => $rule->getOperator(), + 'value' => $ruleValue + ); + } + $join = $filterColumn->getAndOr(); + $columnFilterTests[$columnID] = array( + 'method' => '_filterTypeCustomFilters', + 'arguments' => array( 'filterRules' => $ruleValues, + 'join' => $join + ) + ); + break; + case PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_DYNAMICFILTER : + $columnFilterTests[$columnID] = array( + 'method' => '_filterTypeDynamicFilters', + 'arguments' => $ruleValues + ); + break; + case PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_TOPTENFILTER : + $columnFilterTests[$columnID] = array( + 'method' => '_filterTypeTopTenFilters', + 'arguments' => $ruleValues + ); + break; + } + } + + echo 'Column Filter Test CRITERIA',PHP_EOL; + var_dump($columnFilterTests); + + for ($row = $rangeStart[1]+1; $row <= $rangeEnd[1]; ++$row) { + echo 'Testing Row = ',$row,PHP_EOL; + $result = TRUE; + foreach($columnFilterTests as $columnID => $columnFilterTest) { + echo 'Testing cell ',$columnID.$row,PHP_EOL; + $cellValue = $this->_workSheet->getCell($columnID.$row)->getCalculatedValue(); + echo 'Value is ',$cellValue,PHP_EOL; + // Execute the filter test + $result = $result && + call_user_func_array( + array('PHPExcel_Worksheet_AutoFilter',$columnFilterTest['method']), + array( + $cellValue, + $columnFilterTest['arguments'] + ) + ); + echo (($result) ? 'VALID' : 'INVALID'),PHP_EOL; + // If filter test has resulted in FALSE, exit straightaway rather than running any more tests + if (!$result) + break; + } + echo (($result) ? 'SHOW' : 'HIDE'),PHP_EOL; + $this->_workSheet->getRowDimension($row)->setVisible($result); + } + + return $this; + } + + /** * Implement PHP __clone to create a deep clone, not just a shallow copy. */ diff --git a/Classes/PHPExcel/Worksheet/AutoFilter/Column.php b/Classes/PHPExcel/Worksheet/AutoFilter/Column.php index c4b003b2..faf823ce 100644 --- a/Classes/PHPExcel/Worksheet/AutoFilter/Column.php +++ b/Classes/PHPExcel/Worksheet/AutoFilter/Column.php @@ -49,7 +49,6 @@ class PHPExcel_Worksheet_AutoFilter_Column // colorFilter // extLst // iconFilter - // topTen self::AUTOFILTER_FILTERTYPE_FILTER, self::AUTOFILTER_FILTERTYPE_CUSTOMFILTER, self::AUTOFILTER_FILTERTYPE_DYNAMICFILTER, @@ -60,7 +59,7 @@ class PHPExcel_Worksheet_AutoFilter_Column const AUTOFILTER_COLUMN_ANDOR_AND = 'and'; const AUTOFILTER_COLUMN_ANDOR_OR = 'or'; - private static $_ruleConnections = array( + private static $_ruleJoin = array( self::AUTOFILTER_COLUMN_ANDOR_AND, self::AUTOFILTER_COLUMN_ANDOR_OR, ); @@ -208,7 +207,7 @@ class PHPExcel_Worksheet_AutoFilter_Column public function setAndOr($pAndOr = self::AUTOFILTER_COLUMN_ANDOR_OR) { // Lowercase And/Or $pAndOr = strtolower($pAndOr); - if (!in_array($pAndOr,self::$_ruleConnections)) { + if (!in_array($pAndOr,self::$_ruleJoin)) { throw new PHPExcel_Exception('Invalid rule connection for column AutoFilter.'); } diff --git a/Classes/PHPExcel/Writer/Excel2007/Workbook.php b/Classes/PHPExcel/Writer/Excel2007/Workbook.php index 59622fde..eefe7f10 100644 --- a/Classes/PHPExcel/Writer/Excel2007/Workbook.php +++ b/Classes/PHPExcel/Writer/Excel2007/Workbook.php @@ -347,14 +347,15 @@ class PHPExcel_Writer_Excel2007_Workbook extends PHPExcel_Writer_Excel2007_Write private function _writeDefinedNameForAutofilter(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null, $pSheetId = 0) { // definedName for autoFilter - if ($pSheet->getAutoFilter()->getRange() !== '') { + $autoFilterRange = $pSheet->getAutoFilter()->getRange(); + if (!empty($autoFilterRange)) { $objWriter->startElement('definedName'); $objWriter->writeAttribute('name', '_xlnm._FilterDatabase'); $objWriter->writeAttribute('localSheetId', $pSheetId); $objWriter->writeAttribute('hidden', '1'); // Create absolute coordinate and write as raw text - $range = PHPExcel_Cell::splitRange($pSheet->getAutoFilter()->getRange()); + $range = PHPExcel_Cell::splitRange($autoFilterRange); $range = $range[0]; // Strip any worksheet ref so we can make the cell ref absolute if (strpos($range[0],'!') !== false) { diff --git a/Classes/PHPExcel/Writer/Excel2007/Worksheet.php b/Classes/PHPExcel/Writer/Excel2007/Worksheet.php index 80934372..770bff1b 100644 --- a/Classes/PHPExcel/Writer/Excel2007/Worksheet.php +++ b/Classes/PHPExcel/Writer/Excel2007/Worksheet.php @@ -148,9 +148,10 @@ class PHPExcel_Writer_Excel2007_Worksheet extends PHPExcel_Writer_Excel2007_Writ // sheetPr $objWriter->startElement('sheetPr'); //$objWriter->writeAttribute('codeName', $pSheet->getTitle()); - - if ($pSheet->getAutoFilter()->getRange() !== '') { + $autoFilterRange = $pSheet->getAutoFilter()->getRange(); + if (!empty($autoFilterRange)) { $objWriter->writeAttribute('filterMode', 1); +// $pSheet->getAutoFilter()->showHideRows(); } // tabColor @@ -734,12 +735,13 @@ class PHPExcel_Writer_Excel2007_Worksheet extends PHPExcel_Writer_Excel2007_Writ */ private function _writeAutoFilter(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) { - if ($pSheet->getAutoFilter()->getRange() !== '') { + $autoFilterRange = $pSheet->getAutoFilter()->getRange(); + if (!empty($autoFilterRange)) { // autoFilter $objWriter->startElement('autoFilter'); // Strip any worksheet reference from the filter coordinates - $range = PHPExcel_Cell::splitRange($pSheet->getAutoFilter()->getRange()); + $range = PHPExcel_Cell::splitRange($autoFilterRange); $range = $range[0]; // Strip any worksheet ref if (strpos($range[0],'!') !== false) { diff --git a/Classes/PHPExcel/Writer/Excel5.php b/Classes/PHPExcel/Writer/Excel5.php index 6eb69943..c2f78cc6 100644 --- a/Classes/PHPExcel/Writer/Excel5.php +++ b/Classes/PHPExcel/Writer/Excel5.php @@ -274,6 +274,8 @@ class PHPExcel_Writer_Excel5 implements PHPExcel_Writer_IWriter { // 1-based index to BstoreContainer $blipIndex = 0; + $lastReducedSpId = 0; + $lastSpId = 0; foreach ($this->_phpExcel->getAllsheets() as $sheet) { // sheet index @@ -282,7 +284,8 @@ class PHPExcel_Writer_Excel5 implements PHPExcel_Writer_IWriter $escher = null; // check if there are any shapes for this sheet - if (count($sheet->getDrawingCollection()) == 0 && $sheet->getAutoFilter()->getRange() === '') { + $filterRange = $sheet->getAutoFilter()->getRange(); + if (count($sheet->getDrawingCollection()) == 0 && empty($filterRange)) { continue; } @@ -360,8 +363,8 @@ class PHPExcel_Writer_Excel5 implements PHPExcel_Writer_IWriter } // AutoFilters - if($sheet->getAutoFilter()->getRange() !== ''){ - $rangeBounds = PHPExcel_Cell::rangeBoundaries($sheet->getAutoFilter()->getRange()); + if(!empty($filterRange)){ + $rangeBounds = PHPExcel_Cell::rangeBoundaries($filterRange); $iNumColStart = $rangeBounds[0][0]; $iNumColEnd = $rangeBounds[1][0]; diff --git a/Classes/PHPExcel/Writer/Excel5/Workbook.php b/Classes/PHPExcel/Writer/Excel5/Workbook.php index 4fdcada2..fb0a67c4 100644 --- a/Classes/PHPExcel/Writer/Excel5/Workbook.php +++ b/Classes/PHPExcel/Writer/Excel5/Workbook.php @@ -783,8 +783,9 @@ class PHPExcel_Writer_Excel5_Workbook extends PHPExcel_Writer_Excel5_BIFFwriter // write autofilters, if any for ($i = 0; $i < $total_worksheets; ++$i) { $sheetAutoFilter = $this->_phpExcel->getSheet($i)->getAutoFilter(); - if($sheetAutoFilter->getRange() !== ''){ - $rangeBounds = PHPExcel_Cell::rangeBoundaries($sheetAutoFilter->getRange()); + $autoFilterRange = $sheetAutoFilter->getRange(); + if(!empty($autoFilterRange)) { + $rangeBounds = PHPExcel_Cell::rangeBoundaries($autoFilterRange); //Autofilter built in name $name = pack('C', 0x0D); diff --git a/Classes/PHPExcel/Writer/Excel5/Worksheet.php b/Classes/PHPExcel/Writer/Excel5/Worksheet.php index b079da58..d6d6c214 100644 --- a/Classes/PHPExcel/Writer/Excel5/Worksheet.php +++ b/Classes/PHPExcel/Writer/Excel5/Worksheet.php @@ -390,8 +390,8 @@ class PHPExcel_Writer_Excel5_Worksheet extends PHPExcel_Writer_Excel5_BIFFwriter $this->_writeColinfo($this->_colinfo[$i]); } } - - if ($_phpSheet->getAutoFilter()->getRange() !== '') { + $autoFilterRange = $_phpSheet->getAutoFilter()->getRange(); + if (!empty($autoFilterRange)) { // Write AUTOFILTERINFO $this->_writeAutoFilterInfo(); } diff --git a/Classes/PHPExcel/Writer/HTML.php b/Classes/PHPExcel/Writer/HTML.php index 5ce2b8c4..68c25f98 100644 --- a/Classes/PHPExcel/Writer/HTML.php +++ b/Classes/PHPExcel/Writer/HTML.php @@ -782,7 +782,8 @@ class PHPExcel_Writer_HTML implements PHPExcel_Writer_IWriter { $css['vertical-align'] = $this->_mapVAlign($pStyle->getVertical()); if ($textAlign = $this->_mapHAlign($pStyle->getHorizontal())) { $css['text-align'] = $textAlign; - if(in_array($textAlign,array('left','right'))) $css['padding-'.$textAlign] = (string)((int)$pStyle->getIndent() * 9).'px'; + if(in_array($textAlign,array('left','right'))) + $css['padding-'.$textAlign] = (string)((int)$pStyle->getIndent() * 9).'px'; } // Return diff --git a/Documentation/PHPExcel developer documentation.doc b/Documentation/PHPExcel developer documentation.doc index c89a6aa20166adb1a024b2e5d450120be56a5f33..31ff50a7f0cd94f9e7db2ef34aba8a9e3f01b0a3 100644 GIT binary patch delta 48014 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 delta 43041 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 z