znt/lib/patches/phpspreadsheet-optimize-defaultvaluebinder.patch

24 lines
1.3 KiB
Diff

--- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/DefaultValueBinder.php
+++ b/vendor/phpoffice/phpspreadsheet/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] !== '.') {