From 5d6687b6ceaee4e8868d88829543c824c2e2160e Mon Sep 17 00:00:00 2001 From: Adrien Crivelli Date: Fri, 22 Nov 2013 19:33:56 +0900 Subject: [PATCH] ISTEXT() return wrong result if referencing an empty but formatted cell ISTEXT should always return FALSE for empty cells, however PHPExcel returns TRUE if the cell is formatted. This can be reproduced in Excel by choosing formatting category "Text" for cell A1, and then in cell B1 input the formula '=ISTEXT(A1)'. B1 will display FALSE, but PHPExcel will return TRUE. This patch fix the NULL value being incorrectly cast to an empty string, and thus eliminating ISTEXT() issue (and probably several others). --- Classes/PHPExcel/Cell.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Classes/PHPExcel/Cell.php b/Classes/PHPExcel/Cell.php index cbd8a8f..f2f331e 100644 --- a/Classes/PHPExcel/Cell.php +++ b/Classes/PHPExcel/Cell.php @@ -233,10 +233,12 @@ class PHPExcel_Cell { // set the value according to data type switch ($pDataType) { + case PHPExcel_Cell_DataType::TYPE_NULL: + $this->_value = $pValue; + break; case PHPExcel_Cell_DataType::TYPE_STRING2: $pDataType = PHPExcel_Cell_DataType::TYPE_STRING; case PHPExcel_Cell_DataType::TYPE_STRING: - case PHPExcel_Cell_DataType::TYPE_NULL: case PHPExcel_Cell_DataType::TYPE_INLINE: $this->_value = PHPExcel_Cell_DataType::checkString($pValue); break; @@ -379,7 +381,7 @@ class PHPExcel_Cell { return $this->_dataType == PHPExcel_Cell_DataType::TYPE_FORMULA; } - + /** * Does this cell contain Data validation rules? *