diff --git a/Classes/PHPExcel/CachedObjectStorage/APC.php b/Classes/PHPExcel/CachedObjectStorage/APC.php
index ef550dc0..e32d6a47 100644
--- a/Classes/PHPExcel/CachedObjectStorage/APC.php
+++ b/Classes/PHPExcel/CachedObjectStorage/APC.php
@@ -184,7 +184,7 @@ class PHPExcel_CachedObjectStorage_APC extends PHPExcel_CachedObjectStorage_Cach
public function unsetWorksheetCells() {
- if(!is_null($this->_currentObject)) {
+ if ($this->_currentObject !== NULL) {
$this->_currentObject->detach();
$this->_currentObject = $this->_currentObjectID = null;
}
@@ -202,7 +202,7 @@ class PHPExcel_CachedObjectStorage_APC extends PHPExcel_CachedObjectStorage_Cach
public function __construct(PHPExcel_Worksheet $parent, $arguments) {
$cacheTime = (isset($arguments['cacheTime'])) ? $arguments['cacheTime'] : 600;
- if (is_null($this->_cachePrefix)) {
+ if ($this->_cachePrefix === NULL) {
$baseUnique = $this->_getUniqueID();
$this->_cachePrefix = substr(md5($baseUnique),0,8).'.';
$this->_cacheTime = $cacheTime;
diff --git a/Classes/PHPExcel/Calculation.php b/Classes/PHPExcel/Calculation.php
index 78dbe43b..5c5cb1e7 100644
--- a/Classes/PHPExcel/Calculation.php
+++ b/Classes/PHPExcel/Calculation.php
@@ -2152,8 +2152,8 @@ class PHPExcel_Calculation {
}
// Read the formula from the cell
- if (is_null($pCell)) {
- return null;
+ if ($pCell === NULL) {
+ return NULL;
}
if ($resetLog) {
@@ -2188,7 +2188,7 @@ class PHPExcel_Calculation {
$result = array_shift($testResult);
}
- if (is_null($result)) {
+ if ($result === NULL) {
return 0;
} elseif((is_float($result)) && ((is_nan($result)) || (is_infinite($result)))) {
return PHPExcel_Calculation_Functions::NaN();
@@ -2268,14 +2268,14 @@ class PHPExcel_Calculation {
if (!isset($formula{0})) return self::_wrapResult($formula);
$wsTitle = "\x00Wrk";
- if (!is_null($pCell)) {
+ if ($pCell !== NULL) {
$pCellParent = $pCell->getParent();
- if (!is_null($pCellParent)) {
+ if ($pCellParent !== NULL) {
$wsTitle = $pCellParent->getTitle();
}
}
// Is calculation cacheing enabled?
- if (!is_null($cellID)) {
+ if ($cellID !== NULL) {
if (self::$_calculationCacheEnabled) {
// Is the value present in calculation cache?
// echo 'Testing cache value
';
@@ -2328,7 +2328,7 @@ class PHPExcel_Calculation {
array_pop($this->debugLogStack);
// Save to calculation cache
- if (!is_null($cellID)) {
+ if ($cellID !== NULL) {
if (self::$_calculationCacheEnabled) {
self::$_calculationCache[$wsTitle][$cellID]['time'] = microtime(true);
self::$_calculationCache[$wsTitle][$cellID]['data'] = $cellValue;
@@ -2534,7 +2534,7 @@ class PHPExcel_Calculation {
$value = array_pop($testArray);
}
- if (is_null($value)) {
+ if ($value === NULL) {
return 'a NULL value';
} elseif (is_float($value)) {
$typeString = 'a floating point number';
@@ -2617,12 +2617,12 @@ class PHPExcel_Calculation {
// Convert infix to postfix notation
private function _parseFormula($formula, PHPExcel_Cell $pCell = null) {
if (($formula = self::_convertMatrixReferences(trim($formula))) === false) {
- return false;
+ return FALSE;
}
// If we're using cell caching, then $pCell may well be flushed back to the cache (which detaches the parent worksheet),
// so we store the parent worksheet so that we can re-attach it when necessary
- $pCellParent = (!is_null($pCell)) ? $pCell->getParent() : null;
+ $pCellParent = ($pCell !== NULL) ? $pCell->getParent() : NULL;
// Binary Operators
// These operators always work on two values
@@ -2715,7 +2715,7 @@ class PHPExcel_Calculation {
// echo 'Element is a Closing bracket
';
$expectingOperand = false;
while (($o2 = $stack->pop()) && $o2['value'] != '(') { // Pop off the stack back to the last (
- if (is_null($o2)) return $this->_raiseFormulaError('Formula Error: Unexpected closing brace ")"');
+ if ($o2 === NULL) return $this->_raiseFormulaError('Formula Error: Unexpected closing brace ")"');
else $output[] = $o2;
}
$d = $stack->last(2);
@@ -2794,7 +2794,7 @@ class PHPExcel_Calculation {
} elseif ($opCharacter == ',') { // Is this the separator for function arguments?
// echo 'Element is a Function argument separator
';
while (($o2 = $stack->pop()) && $o2['value'] != '(') { // Pop off the stack back to the last (
- if (is_null($o2)) return $this->_raiseFormulaError("Formula Error: Unexpected ,");
+ if ($o2 === NULL) return $this->_raiseFormulaError("Formula Error: Unexpected ,");
else $output[] = $o2; // pop the argument expression stuff and push onto the output
}
// If we've a comma when we're expecting an operand, then what we actually have is a null operand;
@@ -2885,13 +2885,13 @@ class PHPExcel_Calculation {
if ((is_integer($startRowColRef)) && (ctype_digit($val)) &&
($startRowColRef <= 1048576) && ($val <= 1048576)) {
// Row range
- $endRowColRef = (!is_null($pCellParent)) ? $pCellParent->getHighestColumn() : 'XFD'; // Max 16,384 columns for Excel2007
+ $endRowColRef = ($pCellParent !== NULL) ? $pCellParent->getHighestColumn() : 'XFD'; // Max 16,384 columns for Excel2007
$output[count($output)-1]['value'] = $rangeWS1.'A'.$startRowColRef;
$val = $rangeWS2.$endRowColRef.$val;
} elseif ((ctype_alpha($startRowColRef)) && (ctype_alpha($val)) &&
(strlen($startRowColRef) <= 3) && (strlen($val) <= 3)) {
// Column range
- $endRowColRef = (!is_null($pCellParent)) ? $pCellParent->getHighestRow() : 1048576; // Max 1,048,576 rows for Excel2007
+ $endRowColRef = ($pCellParent !== NULL) ? $pCellParent->getHighestRow() : 1048576; // Max 1,048,576 rows for Excel2007
$output[count($output)-1]['value'] = $rangeWS1.strtoupper($startRowColRef).'1';
$val = $rangeWS2.$val.$endRowColRef;
}
@@ -2976,7 +2976,7 @@ class PHPExcel_Calculation {
}
}
- while (!is_null($op = $stack->pop())) { // pop everything off the stack and push onto output
+ while (($op = $stack->pop()) !== NULL) { // pop everything off the stack and push onto output
if ($opCharacter['value'] == '(') return $this->_raiseFormulaError("Formula Error: Expecting ')'"); // if there are any opening braces on the stack, then braces were unbalanced
$output[] = $op;
}
@@ -2990,7 +2990,7 @@ class PHPExcel_Calculation {
// If we're using cell caching, then $pCell may well be flushed back to the cache (which detaches the parent worksheet),
// so we store the parent worksheet so that we can re-attach it when necessary
- $pCellParent = (!is_null($pCell)) ? $pCell->getParent() : null;
+ $pCellParent = ($pCell !== NULL) ? $pCell->getParent() : null;
$stack = new PHPExcel_Token_Stack;
// Loop through each token in turn
@@ -3003,11 +3003,11 @@ class PHPExcel_Calculation {
if (isset(self::$_binaryOperators[$token])) {
// echo 'Token is a binary operator
';
// We must have two operands, error if we don't
- if (is_null($operand2Data = $stack->pop())) return $this->_raiseFormulaError('Internal error - Operand value missing from stack');
- if (is_null($operand1Data = $stack->pop())) return $this->_raiseFormulaError('Internal error - Operand value missing from stack');
+ if (($operand2Data = $stack->pop()) === NULL) return $this->_raiseFormulaError('Internal error - Operand value missing from stack');
+ if (($operand1Data = $stack->pop()) === NULL) return $this->_raiseFormulaError('Internal error - Operand value missing from stack');
$operand1 = $operand1Data['value'];
- if ((is_null($operand1Data['reference'])) && (is_array($operand1))) {
+ if (($operand1Data['reference'] === NULL) && (is_array($operand1))) {
$rowKey = array_shift(array_keys($operand1));
$colKey = array_shift(array_keys($operand1[$rowKey]));
if (ctype_upper($colKey)) {
@@ -3015,7 +3015,7 @@ class PHPExcel_Calculation {
}
}
$operand2 = $operand2Data['value'];
- if ((is_null($operand2Data['reference'])) && (is_array($operand2))) {
+ if (($operand2Data['reference'] === NULL) && (is_array($operand2))) {
$rowKey = array_shift(array_keys($operand2));
$colKey = array_shift(array_keys($operand2[$rowKey]));
if (ctype_upper($colKey)) {
@@ -3047,7 +3047,7 @@ class PHPExcel_Calculation {
if (strpos($operand1Data['reference'],'!') !== false) {
list($sheet1,$operand1Data['reference']) = explode('!',$operand1Data['reference']);
} else {
- $sheet1 = (!is_null($pCellParent)) ? $pCellParent->getTitle() : '';
+ $sheet1 = ($pCellParent !== NULL) ? $pCellParent->getTitle() : '';
}
if (strpos($operand2Data['reference'],'!') !== false) {
list($sheet2,$operand2Data['reference']) = explode('!',$operand2Data['reference']);
@@ -3055,7 +3055,7 @@ class PHPExcel_Calculation {
$sheet2 = $sheet1;
}
if ($sheet1 == $sheet2) {
- if (is_null($operand1Data['reference'])) {
+ if ($operand1Data['reference'] === NULL) {
if ((trim($operand1Data['value']) != '') && (is_numeric($operand1Data['value']))) {
$operand1Data['reference'] = $pCell->getColumn().$operand1Data['value'];
} elseif (trim($operand1Data['reference']) == '') {
@@ -3064,7 +3064,7 @@ class PHPExcel_Calculation {
$operand1Data['reference'] = $operand1Data['value'].$pCell->getRow();
}
}
- if (is_null($operand2Data['reference'])) {
+ if ($operand2Data['reference'] === NULL) {
if ((trim($operand2Data['value']) != '') && (is_numeric($operand2Data['value']))) {
$operand2Data['reference'] = $pCell->getColumn().$operand2Data['value'];
} elseif (trim($operand2Data['reference']) == '') {
@@ -3082,7 +3082,7 @@ class PHPExcel_Calculation {
$oRow[] = $oCR[1];
}
$cellRef = PHPExcel_Cell::stringFromColumnIndex(min($oCol)).min($oRow).':'.PHPExcel_Cell::stringFromColumnIndex(max($oCol)).max($oRow);
- if (!is_null($pCellParent)) {
+ if ($pCellParent !== NULL) {
$cellValue = $this->extractCellRange($cellRef, $pCellParent->getParent()->getSheetByName($sheet1), false);
} else {
return $this->_raiseFormulaError('Unable to access Cell Reference');
@@ -3156,7 +3156,7 @@ class PHPExcel_Calculation {
// if the token is a unary operator, pop one value off the stack, do the operation, and push it back on
} elseif (($token === '~') || ($token === '%')) {
// echo 'Token is a unary operator
';
- if (is_null($arg = $stack->pop())) return $this->_raiseFormulaError('Internal error - Operand value missing from stack');
+ if (($arg = $stack->pop()) === NULL) return $this->_raiseFormulaError('Internal error - Operand value missing from stack');
$arg = $arg['value'];
if ($token === '~') {
// echo 'Token is a negation operator
';
@@ -3188,7 +3188,7 @@ class PHPExcel_Calculation {
// echo 'Element '.$token.' is a Cell reference
';
if (isset($matches[8])) {
// echo 'Reference is a Range of cells
';
- if (is_null($pCell)) {
+ if ($pCell === NULL) {
// We can't access the range, so return a REF error
$cellValue = PHPExcel_Calculation_Functions::REF();
} else {
@@ -3202,7 +3202,7 @@ class PHPExcel_Calculation {
$matches[2] = trim($matches[2],"\"'");
// echo '$cellRef='.$cellRef.' in worksheet '.$matches[2].'
';
$this->_writeDebug('Evaluating Cell Range '.$cellRef.' in worksheet '.$matches[2]);
- if (!is_null($pCellParent)) {
+ if ($pCellParent !== NULL) {
$cellValue = $this->extractCellRange($cellRef, $pCellParent->getParent()->getSheetByName($matches[2]), false);
} else {
return $this->_raiseFormulaError('Unable to access Cell Reference');
@@ -3212,7 +3212,7 @@ class PHPExcel_Calculation {
} else {
// echo '$cellRef='.$cellRef.' in current worksheet
';
$this->_writeDebug('Evaluating Cell Range '.$cellRef.' in current worksheet');
- if (!is_null($pCellParent)) {
+ if ($pCellParent !== NULL) {
$cellValue = $this->extractCellRange($cellRef, $pCellParent, false);
} else {
return $this->_raiseFormulaError('Unable to access Cell Reference');
@@ -3222,7 +3222,7 @@ class PHPExcel_Calculation {
}
} else {
// echo 'Reference is a single Cell
';
- if (is_null($pCell)) {
+ if ($pCell !== NULL) {
// We can't access the cell, so return a REF error
$cellValue = PHPExcel_Calculation_Functions::REF();
} else {
@@ -3235,7 +3235,7 @@ class PHPExcel_Calculation {
}
// echo '$cellRef='.$cellRef.' in worksheet '.$matches[2].'
';
$this->_writeDebug('Evaluating Cell '.$cellRef.' in worksheet '.$matches[2]);
- if (!is_null($pCellParent)) {
+ if ($pCellParent !== NULL) {
if ($pCellParent->getParent()->getSheetByName($matches[2])->cellExists($cellRef)) {
$cellValue = $this->extractCellRange($cellRef, $pCellParent->getParent()->getSheetByName($matches[2]), false);
$pCell->attach($pCellParent);
@@ -3290,7 +3290,7 @@ class PHPExcel_Calculation {
if (($passByReference) &&
(isset(self::$_PHPExcelFunctions[$functionName]['passByReference'][$a])) &&
(self::$_PHPExcelFunctions[$functionName]['passByReference'][$a])) {
- if (is_null($arg['reference'])) {
+ if ($arg['reference'] === NULL) {
$args[] = $cellID;
if ($functionName != 'MKMATRIX') { $argArrayVals[] = $this->_showValue($cellID); }
} else {
@@ -3367,7 +3367,7 @@ class PHPExcel_Calculation {
// echo 'Token is a PHPExcel constant: '.$excelConstant.'
';
$stack->push('Constant Value',self::$_ExcelConstants[$excelConstant]);
$this->_writeDebug('Evaluating Constant '.$excelConstant.' as '.$this->_showTypeDetails(self::$_ExcelConstants[$excelConstant]));
- } elseif ((is_numeric($token)) || (is_null($token)) || (is_bool($token)) || ($token == '') || ($token{0} == '"') || ($token{0} == '#')) {
+ } elseif ((is_numeric($token)) || ($token === NULL) || (is_bool($token)) || ($token == '') || ($token{0} == '"') || ($token{0} == '#')) {
// echo 'Token is a number, boolean, string, null or an Excel error
';
$stack->push('Value',$token);
// if the token is a named range, push the named range name onto the stack
@@ -3611,7 +3611,7 @@ class PHPExcel_Calculation {
$returnValue = array ();
// echo 'extractCellRange('.$pRange.')
';
- if (!is_null($pSheet)) {
+ if ($pSheet !== NULL) {
// echo 'Passed sheet name is '.$pSheet->getTitle().'
';
// echo 'Range reference is '.$pRange.'
';
if (strpos ($pRange, '!') !== false) {
@@ -3667,7 +3667,7 @@ class PHPExcel_Calculation {
$returnValue = array ();
// echo 'extractNamedRange('.$pRange.')
';
- if (!is_null($pSheet)) {
+ if ($pSheet !== NULL) {
// echo 'Current sheet name is '.$pSheet->getTitle().'
';
// echo 'Range reference is '.$pRange.'
';
if (strpos ($pRange, '!') !== false) {
@@ -3681,7 +3681,7 @@ class PHPExcel_Calculation {
// Named range?
$namedRange = PHPExcel_NamedRange::resolveRange($pRange, $pSheet);
- if (!is_null($namedRange)) {
+ if ($namedRange !== NULL) {
$pSheet = $namedRange->getWorksheet();
// echo 'Named Range '.$pRange.' (';
$pRange = $namedRange->getRange();
diff --git a/Classes/PHPExcel/Calculation/DateTime.php b/Classes/PHPExcel/Calculation/DateTime.php
index 6b30a7a5..66d68808 100644
--- a/Classes/PHPExcel/Calculation/DateTime.php
+++ b/Classes/PHPExcel/Calculation/DateTime.php
@@ -182,7 +182,7 @@ class PHPExcel_Calculation_DateTime {
$retValue = (float) $excelDateTime;
break;
case PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC :
- $retValue = (integer) PHPExcel_Shared_Date::ExcelToPHP($excelDateTime) - 3600;
+ $retValue = (integer) PHPExcel_Shared_Date::ExcelToPHP($excelDateTime);
break;
case PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT :
$retValue = PHPExcel_Shared_Date::ExcelToPHPObject($excelDateTime);
@@ -204,9 +204,21 @@ class PHPExcel_Calculation_DateTime {
* depending on the value of the ReturnDateType flag
*/
public static function DATE($year = 0, $month = 1, $day = 1) {
- $year = (integer) PHPExcel_Calculation_Functions::flattenSingleValue($year);
- $month = (integer) PHPExcel_Calculation_Functions::flattenSingleValue($month);
- $day = (integer) PHPExcel_Calculation_Functions::flattenSingleValue($day);
+ $year = PHPExcel_Calculation_Functions::flattenSingleValue($year);
+ $month = PHPExcel_Calculation_Functions::flattenSingleValue($month);
+ $day = PHPExcel_Calculation_Functions::flattenSingleValue($day);
+
+ $year = ($year !== NULL) ? PHPExcel_Shared_String::testStringAsNumeric($year) : 0;
+ $month = ($month !== NULL) ? PHPExcel_Shared_String::testStringAsNumeric($month) : 0;
+ $day = ($day !== NULL) ? PHPExcel_Shared_String::testStringAsNumeric($day) : 0;
+ if ((!is_numeric($year)) ||
+ (!is_numeric($month)) ||
+ (!is_numeric($day))) {
+ return PHPExcel_Calculation_Functions::VALUE();
+ }
+ $year = (integer) $year;
+ $month = (integer) $month;
+ $day = (integer) $day;
$baseYear = PHPExcel_Shared_Date::getExcelCalendar();
// Validate parameters
@@ -312,7 +324,7 @@ class PHPExcel_Calculation_DateTime {
return (float) PHPExcel_Shared_Date::FormattedPHPToExcel($calendar, 1, $date, $hour, $minute, $second);
break;
case PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC :
- return (integer) PHPExcel_Shared_Date::ExcelToPHP(PHPExcel_Shared_Date::FormattedPHPToExcel(1970, 1, 1, $hour-1, $minute, $second)); // -2147468400; // -2147472000 + 3600
+ return (integer) PHPExcel_Shared_Date::ExcelToPHP(PHPExcel_Shared_Date::FormattedPHPToExcel(1970, 1, 1, $hour, $minute, $second)); // -2147468400; // -2147472000 + 3600
break;
case PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT :
$dayAdjust = 0;
@@ -402,6 +414,8 @@ class PHPExcel_Calculation_DateTime {
if (($PHPDateArray !== False) && ($PHPDateArray['error_count'] == 0)) {
// Execute function
if ($PHPDateArray['year'] == '') { $PHPDateArray['year'] = strftime('%Y'); }
+ if ($PHPDateArray['year'] < 1900)
+ return PHPExcel_Calculation_Functions::VALUE();
if ($PHPDateArray['month'] == '') { $PHPDateArray['month'] = strftime('%m'); }
if ($PHPDateArray['day'] == '') { $PHPDateArray['day'] = strftime('%d'); }
$excelDateValue = floor(PHPExcel_Shared_Date::FormattedPHPToExcel($PHPDateArray['year'],$PHPDateArray['month'],$PHPDateArray['day'],$PHPDateArray['hour'],$PHPDateArray['minute'],$PHPDateArray['second']));
@@ -792,7 +806,7 @@ class PHPExcel_Calculation_DateTime {
if (!empty($dateArgs)) {
$holidayCountedArray = $holidayDates = array();
foreach ($dateArgs as $holidayDate) {
- if ((!is_null($holidayDate)) && (trim($holidayDate) > '')) {
+ if (($holidayDate !== NULL) && (trim($holidayDate) > '')) {
if (is_string($holidayDate = self::_getDateValue($holidayDate))) {
return PHPExcel_Calculation_Functions::VALUE();
}
@@ -877,7 +891,14 @@ class PHPExcel_Calculation_DateTime {
*/
public static function DAYOFWEEK($dateValue = 1, $style = 1) {
$dateValue = PHPExcel_Calculation_Functions::flattenSingleValue($dateValue);
- $style = floor(PHPExcel_Calculation_Functions::flattenSingleValue($style));
+ $style = PHPExcel_Calculation_Functions::flattenSingleValue($style);
+
+ if (!is_numeric($style)) {
+ return PHPExcel_Calculation_Functions::VALUE();
+ } elseif (($style < 1) || ($style > 3)) {
+ return PHPExcel_Calculation_Functions::NaN();
+ }
+ $style = floor($style);
if (is_string($dateValue = self::_getDateValue($dateValue))) {
return PHPExcel_Calculation_Functions::VALUE();
@@ -899,7 +920,6 @@ class PHPExcel_Calculation_DateTime {
$firstDay = 0;
--$DoW;
break;
- default:
}
if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_EXCEL) {
// Test for Excel's 1900 leap year, and introduce the error as required
@@ -924,13 +944,14 @@ class PHPExcel_Calculation_DateTime {
*/
public static function WEEKOFYEAR($dateValue = 1, $method = 1) {
$dateValue = PHPExcel_Calculation_Functions::flattenSingleValue($dateValue);
- $method = floor(PHPExcel_Calculation_Functions::flattenSingleValue($method));
+ $method = PHPExcel_Calculation_Functions::flattenSingleValue($method);
if (!is_numeric($method)) {
return PHPExcel_Calculation_Functions::VALUE();
} elseif (($method < 1) || ($method > 2)) {
return PHPExcel_Calculation_Functions::NaN();
}
+ $method = floor($method);
if (is_string($dateValue = self::_getDateValue($dateValue))) {
return PHPExcel_Calculation_Functions::VALUE();
@@ -1107,11 +1128,12 @@ class PHPExcel_Calculation_DateTime {
*/
public static function EDATE($dateValue = 1, $adjustmentMonths = 0) {
$dateValue = PHPExcel_Calculation_Functions::flattenSingleValue($dateValue);
- $adjustmentMonths = floor(PHPExcel_Calculation_Functions::flattenSingleValue($adjustmentMonths));
+ $adjustmentMonths = PHPExcel_Calculation_Functions::flattenSingleValue($adjustmentMonths);
if (!is_numeric($adjustmentMonths)) {
return PHPExcel_Calculation_Functions::VALUE();
}
+ $adjustmentMonths = floor($adjustmentMonths);
if (is_string($dateValue = self::_getDateValue($dateValue))) {
return PHPExcel_Calculation_Functions::VALUE();
@@ -1146,11 +1168,12 @@ class PHPExcel_Calculation_DateTime {
*/
public static function EOMONTH($dateValue = 1, $adjustmentMonths = 0) {
$dateValue = PHPExcel_Calculation_Functions::flattenSingleValue($dateValue);
- $adjustmentMonths = floor(PHPExcel_Calculation_Functions::flattenSingleValue($adjustmentMonths));
+ $adjustmentMonths = PHPExcel_Calculation_Functions::flattenSingleValue($adjustmentMonths);
if (!is_numeric($adjustmentMonths)) {
return PHPExcel_Calculation_Functions::VALUE();
}
+ $adjustmentMonths = floor($adjustmentMonths);
if (is_string($dateValue = self::_getDateValue($dateValue))) {
return PHPExcel_Calculation_Functions::VALUE();
@@ -1176,3 +1199,4 @@ class PHPExcel_Calculation_DateTime {
} // function EOMONTH()
} // class PHPExcel_Calculation_DateTime
+
diff --git a/Classes/PHPExcel/Calculation/Engineering.php b/Classes/PHPExcel/Calculation/Engineering.php
index 370aaf2f..f18b18ce 100644
--- a/Classes/PHPExcel/Calculation/Engineering.php
+++ b/Classes/PHPExcel/Calculation/Engineering.php
@@ -2046,7 +2046,7 @@ class PHPExcel_Calculation_Engineering {
if (!is_numeric($value)) {
return PHPExcel_Calculation_Functions::VALUE();
}
- $fromMultiplier = 1;
+ $fromMultiplier = 1.0;
if (isset(self::$_conversionUnits[$fromUOM])) {
$unitGroup1 = self::$_conversionUnits[$fromUOM]['Group'];
} else {
@@ -2065,7 +2065,7 @@ class PHPExcel_Calculation_Engineering {
}
$value *= $fromMultiplier;
- $toMultiplier = 1;
+ $toMultiplier = 1.0;
if (isset(self::$_conversionUnits[$toUOM])) {
$unitGroup2 = self::$_conversionUnits[$toUOM]['Group'];
} else {
@@ -2086,12 +2086,12 @@ class PHPExcel_Calculation_Engineering {
return PHPExcel_Calculation_Functions::NA();
}
- if ($fromUOM == $toUOM) {
- return 1.0;
+ if (($fromUOM == $toUOM) && ($fromMultiplier == $toMultiplier)) {
+ return $value;
} elseif ($unitGroup1 == 'Temperature') {
if (($fromUOM == 'F') || ($fromUOM == 'fah')) {
if (($toUOM == 'F') || ($toUOM == 'fah')) {
- return 1.0;
+ return $value;
} else {
$value = (($value - 32) / 1.8);
if (($toUOM == 'K') || ($toUOM == 'kel')) {
@@ -2101,10 +2101,10 @@ class PHPExcel_Calculation_Engineering {
}
} elseif ((($fromUOM == 'K') || ($fromUOM == 'kel')) &&
(($toUOM == 'K') || ($toUOM == 'kel'))) {
- return 1.0;
+ return $value;
} elseif ((($fromUOM == 'C') || ($fromUOM == 'cel')) &&
(($toUOM == 'C') || ($toUOM == 'cel'))) {
- return 1.0;
+ return $value;
}
if (($toUOM == 'F') || ($toUOM == 'fah')) {
if (($fromUOM == 'K') || ($fromUOM == 'kel')) {
diff --git a/Classes/PHPExcel/Calculation/MathTrig.php b/Classes/PHPExcel/Calculation/MathTrig.php
index 4d771654..45782a72 100644
--- a/Classes/PHPExcel/Calculation/MathTrig.php
+++ b/Classes/PHPExcel/Calculation/MathTrig.php
@@ -357,6 +357,11 @@ class PHPExcel_Calculation_MathTrig {
public static function INT($number) {
$number = PHPExcel_Calculation_Functions::flattenSingleValue($number);
+ if (is_null($number)) {
+ return 0;
+ } elseif (is_bool($number)) {
+ return (int) $number;
+ }
if (is_numeric($number)) {
return (int) floor($number);
}
@@ -681,12 +686,15 @@ class PHPExcel_Calculation_MathTrig {
$y = PHPExcel_Calculation_Functions::flattenSingleValue($y);
// Validate parameters
- if ($x == 0 && $y <= 0) {
+ if ($x == 0.0 && $y == 0.0) {
+ return PHPExcel_Calculation_Functions::NaN();
+ } elseif ($x == 0.0 && $y < 0.0) {
return PHPExcel_Calculation_Functions::DIV0();
}
// Return
- return pow($x, $y);
+ $result = pow($x, $y);
+ return (!is_nan($result) && !is_infinite($result)) ? $result : PHPExcel_Calculation_Functions::NaN();
} // function POWER()
@@ -915,6 +923,8 @@ class PHPExcel_Calculation_MathTrig {
public static function SIGN($number) {
$number = PHPExcel_Calculation_Functions::flattenSingleValue($number);
+ if (is_bool($number))
+ return (int) $number;
if (is_numeric($number)) {
if ($number == 0.0) {
return 0;
diff --git a/Classes/PHPExcel/Cell.php b/Classes/PHPExcel/Cell.php
index 1617ecfd..81462cea 100644
--- a/Classes/PHPExcel/Cell.php
+++ b/Classes/PHPExcel/Cell.php
@@ -283,7 +283,7 @@ class PHPExcel_Cell
$result = PHPExcel_Calculation::getInstance()->calculateCellValue($this,$resetLog);
// echo $this->getCoordinate().' calculation result is '.$result.'
';
} catch ( Exception $ex ) {
- if (($ex->getMessage() === 'Unable to access External Workbook') && (!is_null($this->_calculatedValue))) {
+ if (($ex->getMessage() === 'Unable to access External Workbook') && ($this->_calculatedValue !== NULL)) {
// echo 'Returning fallback value of '.$this->_calculatedValue.' for cell '.$this->getCoordinate().'
';
return $this->_calculatedValue; // Fallback for calculations referencing external files.
}
@@ -300,7 +300,7 @@ class PHPExcel_Cell
return $result;
}
-// if (is_null($this->_value)) {
+// if ($this->_value === NULL) {
// echo 'Cell '.$this->getCoordinate().' has no value, formula or otherwise
';
// return null;
// }
@@ -813,7 +813,7 @@ class PHPExcel_Cell
* @return PHPExcel_Cell_IValueBinder
*/
public static function getValueBinder() {
- if (is_null(self::$_valueBinder)) {
+ if (self::$_valueBinder === NULL) {
self::$_valueBinder = new PHPExcel_Cell_DefaultValueBinder();
}
@@ -827,7 +827,7 @@ class PHPExcel_Cell
* @throws Exception
*/
public static function setValueBinder(PHPExcel_Cell_IValueBinder $binder = null) {
- if (is_null($binder)) {
+ if ($binder === NULL) {
throw new Exception("A PHPExcel_Cell_IValueBinder is required for PHPExcel to function correctly.");
}
diff --git a/Classes/PHPExcel/HashTable.php b/Classes/PHPExcel/HashTable.php
index 76cdfedc..7765bb1f 100644
--- a/Classes/PHPExcel/HashTable.php
+++ b/Classes/PHPExcel/HashTable.php
@@ -57,7 +57,7 @@ class PHPExcel_HashTable
*/
public function __construct($pSource = null)
{
- if (!is_null($pSource)) {
+ if ($pSource !== NULL) {
// Create HashTable
$this->addFromSource($pSource);
}
diff --git a/Classes/PHPExcel/Reader/Excel2003XML.php b/Classes/PHPExcel/Reader/Excel2003XML.php
index 5151b4f2..0f96c000 100644
--- a/Classes/PHPExcel/Reader/Excel2003XML.php
+++ b/Classes/PHPExcel/Reader/Excel2003XML.php
@@ -612,7 +612,7 @@ class PHPExcel_Reader_Excel2003XML implements PHPExcel_Reader_IReader
}
$cellRange = $columnID.$rowID;
- if (!is_null($this->getReadFilter())) {
+ if ($this->getReadFilter() !== NULL) {
if (!$this->getReadFilter()->readCell($columnID, $rowID, $worksheetName)) {
continue;
}
diff --git a/Classes/PHPExcel/Reader/Excel2007.php b/Classes/PHPExcel/Reader/Excel2007.php
index baf29f60..07b9a853 100644
--- a/Classes/PHPExcel/Reader/Excel2007.php
+++ b/Classes/PHPExcel/Reader/Excel2007.php
@@ -493,7 +493,7 @@ class PHPExcel_Reader_Excel2007 implements PHPExcel_Reader_IReader
if ($xmlStyles && $xmlStyles->numFmts[0]) {
$numFmts = $xmlStyles->numFmts[0];
}
- if (isset($numFmts) && !is_null($numFmts)) {
+ if (isset($numFmts) && ($numFmts !== NULL)) {
$numFmts->registerXPathNamespace("sml", "http://schemas.openxmlformats.org/spreadsheetml/2006/main");
}
if (!$this->_readDataOnly && $xmlStyles) {
@@ -793,7 +793,7 @@ class PHPExcel_Reader_Excel2007 implements PHPExcel_Reader_IReader
$calculatedValue = null;
// Read cell?
- if (!is_null($this->getReadFilter())) {
+ if ($this->getReadFilter() !== NULL) {
$coordinates = PHPExcel_Cell::coordinateFromString($r);
if (!$this->getReadFilter()->readCell($coordinates[0], $coordinates[1], $docSheet->getTitle())) {
@@ -888,7 +888,7 @@ class PHPExcel_Reader_Excel2007 implements PHPExcel_Reader_IReader
} else {
$cell->setValue($value);
}
- if (!is_null($calculatedValue)) {
+ if ($calculatedValue !== NULL) {
$cell->setCalculatedValue($calculatedValue);
}
@@ -1198,7 +1198,7 @@ class PHPExcel_Reader_Excel2007 implements PHPExcel_Reader_IReader
}
}
- if (!is_null($column) && !is_null($row)) {
+ if (($column !== NULL) && ($row !== NULL)) {
// Set comment properties
$comment = $docSheet->getCommentByColumnAndRow($column, $row + 1);
$comment->getFillColor()->setRGB( $fillColor );
@@ -1501,7 +1501,7 @@ class PHPExcel_Reader_Excel2007 implements PHPExcel_Reader_IReader
$extractedRange = isset($range[1]) ? $range[1] : $range[0];
}
- if (!is_null($locatedSheet)) {
+ if ($locatedSheet !== NULL) {
$excel->addNamedRange( new PHPExcel_NamedRange((string)$definedName['name'], $locatedSheet, $extractedRange, false) );
}
}
@@ -1540,7 +1540,7 @@ class PHPExcel_Reader_Excel2007 implements PHPExcel_Reader_IReader
} else if (isset($color["indexed"])) {
return PHPExcel_Style_Color::indexedColor($color["indexed"],$background)->getARGB();
} else if (isset($color["theme"])) {
- if (!is_null(self::$_theme)) {
+ if (self::$_theme !== NULL) {
$returnColour = self::$_theme->getColourByIndex((int)$color["theme"]);
if (isset($color["tint"])) {
$tintAdjust = (float) $color["tint"];
diff --git a/Classes/PHPExcel/Reader/Excel5.php b/Classes/PHPExcel/Reader/Excel5.php
index c33bd49d..2475cd05 100644
--- a/Classes/PHPExcel/Reader/Excel5.php
+++ b/Classes/PHPExcel/Reader/Excel5.php
@@ -942,7 +942,7 @@ class PHPExcel_Reader_Excel5 implements PHPExcel_Reader_IReader
if ($this->_version == self::XLS_BIFF8) {
foreach ($this->_sharedFormulaParts as $cell => $baseCell) {
list($column, $row) = PHPExcel_Cell::coordinateFromString($cell);
- if ( !is_null($this->getReadFilter()) && $this->getReadFilter()->readCell($column, $row, $this->_phpSheet->getTitle()) ) {
+ if (($this->getReadFilter() !== NULL) && $this->getReadFilter()->readCell($column, $row, $this->_phpSheet->getTitle()) ) {
$formula = $this->_getFormulaFromStructure($this->_sharedFormulas[$baseCell], $cell);
$this->_phpSheet->getCell($cell)->setValueExplicit('=' . $formula, PHPExcel_Cell_DataType::TYPE_FORMULA);
}
@@ -3307,7 +3307,7 @@ class PHPExcel_Reader_Excel5 implements PHPExcel_Reader_IReader
$columnString = PHPExcel_Cell::stringFromColumnIndex($column);
// Read cell?
- if ( !is_null($this->getReadFilter()) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) {
+ if (($this->getReadFilter() !== NULL) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) {
// offset: 4; size: 2; index to XF record
$xfIndex = self::_GetInt2d($recordData, 4);
@@ -3351,7 +3351,7 @@ class PHPExcel_Reader_Excel5 implements PHPExcel_Reader_IReader
$columnString = PHPExcel_Cell::stringFromColumnIndex($column);
// Read cell?
- if ( !is_null($this->getReadFilter()) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) {
+ if (($this->getReadFilter() !== NULL) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) {
// offset: 4; size: 2; index to XF record
$xfIndex = self::_GetInt2d($recordData, 4);
@@ -3437,7 +3437,7 @@ class PHPExcel_Reader_Excel5 implements PHPExcel_Reader_IReader
$columnString = PHPExcel_Cell::stringFromColumnIndex($colFirst + $i);
// Read cell?
- if ( !is_null($this->getReadFilter()) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) {
+ if (($this->getReadFilter() !== NULL) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) {
// offset: var; size: 2; index to XF record
$xfIndex = self::_GetInt2d($recordData, $offset);
@@ -3482,7 +3482,7 @@ class PHPExcel_Reader_Excel5 implements PHPExcel_Reader_IReader
$columnString = PHPExcel_Cell::stringFromColumnIndex($column);
// Read cell?
- if ( !is_null($this->getReadFilter()) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) {
+ if (($this->getReadFilter() !== NULL) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) {
// offset 4; size: 2; index to XF record
$xfIndex = self::_GetInt2d($recordData, 4);
@@ -3548,7 +3548,7 @@ class PHPExcel_Reader_Excel5 implements PHPExcel_Reader_IReader
}
// Read cell?
- if ( !is_null($this->getReadFilter()) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) {
+ if (($this->getReadFilter() !== NULL) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) {
if ($isPartOfSharedFormula) {
// formula is added to this cell after the sheet has been read
@@ -3722,7 +3722,7 @@ class PHPExcel_Reader_Excel5 implements PHPExcel_Reader_IReader
$columnString = PHPExcel_Cell::stringFromColumnIndex($column);
// Read cell?
- if ( !is_null($this->getReadFilter()) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) {
+ if (($this->getReadFilter() !== NULL) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) {
// offset: 4; size: 2; index to XF record
$xfIndex = self::_GetInt2d($recordData, 4);
@@ -3785,7 +3785,7 @@ class PHPExcel_Reader_Excel5 implements PHPExcel_Reader_IReader
$columnString = PHPExcel_Cell::stringFromColumnIndex($fc + $i);
// Read cell?
- if ( !is_null($this->getReadFilter()) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) {
+ if (($this->getReadFilter() !== NULL) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) {
$xfIndex = self::_GetInt2d($recordData, 4 + 2 * $i);
$this->_phpSheet->getCell($columnString . ($row + 1))->setXfIndex($this->_mapCellXfIndex[$xfIndex]);
}
@@ -3821,7 +3821,7 @@ class PHPExcel_Reader_Excel5 implements PHPExcel_Reader_IReader
$columnString = PHPExcel_Cell::stringFromColumnIndex($column);
// Read cell?
- if ( !is_null($this->getReadFilter()) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) {
+ if (($this->getReadFilter() !== NULL) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) {
// offset: 4; size: 2; XF index
$xfIndex = self::_GetInt2d($recordData, 4);
@@ -3863,7 +3863,7 @@ class PHPExcel_Reader_Excel5 implements PHPExcel_Reader_IReader
$columnString = PHPExcel_Cell::stringFromColumnIndex($col);
// Read cell?
- if ( !is_null($this->getReadFilter()) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) {
+ if (($this->getReadFilter() !== NULL) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) {
// offset: 4; size: 2; XF index
$xfIndex = self::_GetInt2d($recordData, 4);
@@ -4069,7 +4069,7 @@ class PHPExcel_Reader_Excel5 implements PHPExcel_Reader_IReader
private function _includeCellRangeFiltered($cellRangeAddress)
{
$includeCellRange = true;
- if (!is_null($this->getReadFilter())) {
+ if ($this->getReadFilter() !== NULL) {
$includeCellRange = false;
$rangeBoundaries = PHPExcel_Cell::getRangeBoundaries($cellRangeAddress);
$rangeBoundaries[1][0]++;
diff --git a/Classes/PHPExcel/Reader/Gnumeric.php b/Classes/PHPExcel/Reader/Gnumeric.php
index aef8c83c..7a946813 100644
--- a/Classes/PHPExcel/Reader/Gnumeric.php
+++ b/Classes/PHPExcel/Reader/Gnumeric.php
@@ -464,7 +464,7 @@ class PHPExcel_Reader_Gnumeric implements PHPExcel_Reader_IReader
$column = PHPExcel_Cell::stringFromColumnIndex($column);
// Read cell?
- if (!is_null($this->getReadFilter())) {
+ if ($this->getReadFilter() !== NULL) {
if (!$this->getReadFilter()->readCell($column, $row, $worksheetName)) {
continue;
}
diff --git a/Classes/PHPExcel/Reader/OOCalc.php b/Classes/PHPExcel/Reader/OOCalc.php
index b6e47ded..0a17d157 100644
--- a/Classes/PHPExcel/Reader/OOCalc.php
+++ b/Classes/PHPExcel/Reader/OOCalc.php
@@ -414,7 +414,7 @@ class PHPExcel_Reader_OOCalc implements PHPExcel_Reader_IReader
case 'table-row' :
$columnID = 'A';
foreach($rowData as $key => $cellData) {
- if (!is_null($this->getReadFilter())) {
+ if ($this->getReadFilter() !== NULL) {
if (!$this->getReadFilter()->readCell($columnID, $rowID, $worksheetName)) {
continue;
}
diff --git a/Classes/PHPExcel/ReferenceHelper.php b/Classes/PHPExcel/ReferenceHelper.php
index e4c091a1..1f5e7e90 100644
--- a/Classes/PHPExcel/ReferenceHelper.php
+++ b/Classes/PHPExcel/ReferenceHelper.php
@@ -55,7 +55,7 @@ class PHPExcel_ReferenceHelper
* @return PHPExcel_ReferenceHelper
*/
public static function getInstance() {
- if (!isset(self::$_instance) || is_null(self::$_instance)) {
+ if (!isset(self::$_instance) || (self::$_instance === NULL)) {
self::$_instance = new PHPExcel_ReferenceHelper();
}
@@ -530,7 +530,7 @@ class PHPExcel_ReferenceHelper
foreach ($pPhpExcel->getWorksheetIterator() as $sheet) {
foreach ($sheet->getCellCollection(false) as $cellID) {
$cell = $sheet->getCell($cellID);
- if (!is_null($cell) && $cell->getDataType() == PHPExcel_Cell_DataType::TYPE_FORMULA) {
+ if (($cell !== NULL) && ($cell->getDataType() == PHPExcel_Cell_DataType::TYPE_FORMULA)) {
$formula = $cell->getValue();
if (strpos($formula, $oldName) !== false) {
$formula = str_replace("'" . $oldName . "'!", "'" . $newName . "'!", $formula);
diff --git a/Classes/PHPExcel/Shared/String.php b/Classes/PHPExcel/Shared/String.php
index 20cdd710..9616aa4e 100644
--- a/Classes/PHPExcel/Shared/String.php
+++ b/Classes/PHPExcel/Shared/String.php
@@ -703,4 +703,18 @@ class PHPExcel_Shared_String
return $pValue;
}
+ /**
+ * Retrieve any leading numeric part of a string, or return the full string if no leading numeric
+ * (handles basic integer or float, but not exponent or non decimal)
+ *
+ * @param string $value
+ * @return mixed string or only the leading numeric part of the string
+ */
+ public static function testStringAsNumeric($value)
+ {
+ if (is_numeric($value))
+ return $value;
+ $v = floatval($value);
+ return (is_numeric(substr($value,0,strlen($v)))) ? $v : $value;
+ }
}
diff --git a/Classes/PHPExcel/Worksheet.php b/Classes/PHPExcel/Worksheet.php
index f91249b7..c4c1e652 100644
--- a/Classes/PHPExcel/Worksheet.php
+++ b/Classes/PHPExcel/Worksheet.php
@@ -421,7 +421,7 @@ class PHPExcel_Worksheet implements PHPExcel_IComparable
// Re-order cell collection
return $this->sortCellCollection();
}
- if (!is_null($this->_cellCollection)) {
+ if ($this->_cellCollection !== NULL) {
return $this->_cellCollection->getCellList();
}
return array();
@@ -434,7 +434,7 @@ class PHPExcel_Worksheet implements PHPExcel_IComparable
*/
public function sortCellCollection()
{
- if (!is_null($this->_cellCollection)) {
+ if ($this->_cellCollection !== NULL) {
return $this->_cellCollection->getSortedCellList();
}
return array();
@@ -984,7 +984,7 @@ class PHPExcel_Worksheet implements PHPExcel_IComparable
if ((!preg_match('/^'.PHPExcel_Calculation::CALCULATION_REGEXP_CELLREF.'$/i', $pCoordinate, $matches)) &&
(preg_match('/^'.PHPExcel_Calculation::CALCULATION_REGEXP_NAMEDRANGE.'$/i', $pCoordinate, $matches))) {
$namedRange = PHPExcel_NamedRange::resolveRange($pCoordinate, $this);
- if (!is_null($namedRange)) {
+ if ($namedRange !== NULL) {
$pCoordinate = $namedRange->getRange();
return $namedRange->getWorksheet()->getCell($pCoordinate);
}
diff --git a/Classes/PHPExcel/Writer/HTML.php b/Classes/PHPExcel/Writer/HTML.php
index ff44cba8..85f67815 100644
--- a/Classes/PHPExcel/Writer/HTML.php
+++ b/Classes/PHPExcel/Writer/HTML.php
@@ -222,7 +222,7 @@ class PHPExcel_Writer_HTML implements PHPExcel_Writer_IWriter {
*/
private function _mapBorderStyle($borderStyle) {
switch ($borderStyle) {
- case PHPExcel_Style_Border::BORDER_NONE: return '0px';
+ case PHPExcel_Style_Border::BORDER_NONE: return '1px hidden';
case PHPExcel_Style_Border::BORDER_DASHDOT: return '1px dashed';
case PHPExcel_Style_Border::BORDER_DASHDOTDOT: return '1px dotted';
case PHPExcel_Style_Border::BORDER_DASHED: return '1px dashed';
@@ -839,11 +839,8 @@ class PHPExcel_Writer_HTML implements PHPExcel_Writer_IWriter {
* @return string
*/
private function _createCSSStyleBorder(PHPExcel_Style_Border $pStyle) {
- // Construct HTML
- $css = '';
-
// Create CSS
- $css .= $this->_mapBorderStyle($pStyle->getBorderStyle()) . ' #' . $pStyle->getColor()->getRGB();
+ $css = $this->_mapBorderStyle($pStyle->getBorderStyle()) . ' #' . $pStyle->getColor()->getRGB();
// Return
return $css;