From a691516664f48790bec8e4f2005e37cc0215cd82 Mon Sep 17 00:00:00 2001 From: MarkBaker Date: Thu, 25 Jul 2019 23:25:02 +0200 Subject: [PATCH] Improvements to default value binder --- src/PhpSpreadsheet/Cell/DefaultValueBinder.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/PhpSpreadsheet/Cell/DefaultValueBinder.php b/src/PhpSpreadsheet/Cell/DefaultValueBinder.php index 0e6433a4..cd05cf8b 100644 --- a/src/PhpSpreadsheet/Cell/DefaultValueBinder.php +++ b/src/PhpSpreadsheet/Cell/DefaultValueBinder.php @@ -51,16 +51,16 @@ class DefaultValueBinder implements IValueBinder // Match the value against a few data types if ($pValue === null) { return DataType::TYPE_NULL; + } elseif (is_float($pValue) || is_int($pValue)) { + return DataType::TYPE_NUMERIC; + } elseif (is_bool($pValue)) { + return DataType::TYPE_BOOL; } elseif ($pValue === '') { return DataType::TYPE_STRING; } elseif ($pValue instanceof RichText) { return DataType::TYPE_INLINE; - } elseif ($pValue[0] === '=' && strlen($pValue) > 1) { + } elseif (is_string($pValue) && $pValue[0] === '=' && strlen($pValue) > 1) { return DataType::TYPE_FORMULA; - } elseif (is_bool($pValue)) { - return DataType::TYPE_BOOL; - } elseif (is_float($pValue) || is_int($pValue)) { - return DataType::TYPE_NUMERIC; } elseif (preg_match('/^[\+\-]?(\d+\\.?\d*|\d*\\.?\d+)([Ee][\-\+]?[0-2]?\d{1,3})?$/', $pValue)) { $tValue = ltrim($pValue, '+-'); if (is_string($pValue) && $tValue[0] === '0' && strlen($tValue) > 1 && $tValue[1] !== '.') {