Some general performance tweaks, and some specific to the Excel2007 Writer
git-svn-id: https://phpexcel.svn.codeplex.com/svn/trunk@64159 2327b42d-5241-43d6-9e2a-de5ac946f064
This commit is contained in:
		
							parent
							
								
									606f43a086
								
							
						
					
					
						commit
						29c4b1db5f
					
				| @ -3222,8 +3222,10 @@ class PHPExcel_Calculation { | |||||||
| //					print_r($args);
 | //					print_r($args);
 | ||||||
| //					echo '<br />';
 | //					echo '<br />';
 | ||||||
| 					if ($functionName != 'MKMATRIX') { | 					if ($functionName != 'MKMATRIX') { | ||||||
|  | 						if ($this->writeDebugLog) { | ||||||
| 							krsort($argArrayVals); | 							krsort($argArrayVals); | ||||||
| 						$this->_writeDebug('Evaluating '. self::_localeFunc($functionName).'( '.implode(self::$_localeArgumentSeparator.' ',$argArrayVals).' )'); | 							$this->_writeDebug('Evaluating '. self::_localeFunc($functionName).'( '.implode(self::$_localeArgumentSeparator.' ',PHPExcel_Calculation_Functions::flattenArray($argArrayVals)).' )'); | ||||||
|  | 						} | ||||||
| 					} | 					} | ||||||
| 					//	Process each argument in turn, building the return value as an array
 | 					//	Process each argument in turn, building the return value as an array
 | ||||||
| //					if (($argCount == 1) && (is_array($args[1])) && ($functionName != 'MKMATRIX')) {
 | //					if (($argCount == 1) && (is_array($args[1])) && ($functionName != 'MKMATRIX')) {
 | ||||||
|  | |||||||
| @ -192,6 +192,18 @@ class PHPExcel_Cell | |||||||
| 		return $this->_value; | 		return $this->_value; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	/** | ||||||
|  | 	 * Get cell value with formatting | ||||||
|  | 	 * | ||||||
|  | 	 * @return string | ||||||
|  | 	 */ | ||||||
|  | 	public function getFormattedValue() | ||||||
|  | 	{ | ||||||
|  | 		return PHPExcel_Style_NumberFormat::toFormattedString( $this->getCalculatedValue(), | ||||||
|  | 						$this->_parent->getParent()->getCellXfByIndex($this->getXfIndex())->getNumberFormat()->getFormatCode() | ||||||
|  | 			   ); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	/** | 	/** | ||||||
| 	 * Set cell value | 	 * Set cell value | ||||||
| 	 * | 	 * | ||||||
| @ -486,7 +498,7 @@ class PHPExcel_Cell | |||||||
| 		} elseif ($pCoordinateString == '') { | 		} elseif ($pCoordinateString == '') { | ||||||
| 			throw new Exception('Cell coordinate can not be zero-length string.'); | 			throw new Exception('Cell coordinate can not be zero-length string.'); | ||||||
| 		} else { | 		} else { | ||||||
| 			throw new Exception('Invalid cell coordinate.'); | 			throw new Exception('Invalid cell coordinate '.$pCoordinateString); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -89,9 +89,10 @@ class PHPExcel_HashTable | |||||||
| 	 * @throws	Exception | 	 * @throws	Exception | ||||||
| 	 */ | 	 */ | ||||||
| 	public function add(PHPExcel_IComparable $pSource = null) { | 	public function add(PHPExcel_IComparable $pSource = null) { | ||||||
|    		if (!isset($this->_items[  $pSource->getHashCode()  ])) { | 		$hash = $pSource->getHashCode(); | ||||||
|             $this->_items[  $pSource->getHashCode()  ] = $pSource; | 		if (!isset($this->_items[$hash])) { | ||||||
|             $this->_keyMap[  count($this->_items) - 1  ] = $pSource->getHashCode(); | 			$this->_items[$hash] = $pSource; | ||||||
|  | 			$this->_keyMap[count($this->_items) - 1] = $hash; | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| @ -102,8 +103,9 @@ class PHPExcel_HashTable | |||||||
| 	 * @throws	Exception | 	 * @throws	Exception | ||||||
| 	 */ | 	 */ | ||||||
| 	public function remove(PHPExcel_IComparable $pSource = null) { | 	public function remove(PHPExcel_IComparable $pSource = null) { | ||||||
|     	if (isset($this->_items[  $pSource->getHashCode()  ])) { | 		$hash = $pSource->getHashCode(); | ||||||
| 	   		unset($this->_items[  $pSource->getHashCode()  ]); | 		if (isset($this->_items[$hash])) { | ||||||
|  | 			unset($this->_items[$hash]); | ||||||
| 
 | 
 | ||||||
| 			$deleteKey = -1; | 			$deleteKey = -1; | ||||||
| 			foreach ($this->_keyMap as $key => $value) { | 			foreach ($this->_keyMap as $key => $value) { | ||||||
| @ -111,11 +113,11 @@ class PHPExcel_HashTable | |||||||
| 					$this->_keyMap[$key - 1] = $value; | 					$this->_keyMap[$key - 1] = $value; | ||||||
| 				} | 				} | ||||||
| 
 | 
 | ||||||
| 	   			if ($value == $pSource->getHashCode()) { | 				if ($value == $hash) { | ||||||
| 					$deleteKey = $key; | 					$deleteKey = $key; | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 	   		unset($this->_keyMap[ count($this->_keyMap) - 1 ]); | 			unset($this->_keyMap[count($this->_keyMap) - 1]); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Mark Baker
						Mark Baker