From cee1830d0f81cd1ac20eaa7cc3264d9da36a9721 Mon Sep 17 00:00:00 2001 From: Schneider Roland Date: Thu, 1 Dec 2022 18:24:43 +0100 Subject: [PATCH] add phpexcel php-7 patch --- .../PHPExcel/Cell/DefaultValueBinder.php | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 patches/vendor/phpoffice/phpexcel/Classes/PHPExcel/Cell/DefaultValueBinder.php diff --git a/patches/vendor/phpoffice/phpexcel/Classes/PHPExcel/Cell/DefaultValueBinder.php b/patches/vendor/phpoffice/phpexcel/Classes/PHPExcel/Cell/DefaultValueBinder.php new file mode 100644 index 0000000..70d18eb --- /dev/null +++ b/patches/vendor/phpoffice/phpexcel/Classes/PHPExcel/Cell/DefaultValueBinder.php @@ -0,0 +1,111 @@ +format('Y-m-d H:i:s'); + } elseif (!($value instanceof PHPExcel_RichText)) { + $value = (string) $value; + } + } + + // Set value explicit + $cell->setValueExplicit( $value, self::dataTypeForValue($value) ); + + // Done! + return true; + } + + /** + * DataType for value + * + * @param mixed $pValue + * @return string + */ + public static function dataTypeForValue($pValue = null) { + // Match the value against a few data types + if ($pValue === null) { + return PHPExcel_Cell_DataType::TYPE_NULL; + } elseif ($pValue === '') { + return PHPExcel_Cell_DataType::TYPE_STRING; + } elseif ($pValue instanceof PHPExcel_RichText) { + return PHPExcel_Cell_DataType::TYPE_INLINE; + } elseif (0 === strpos($pValue, '=') && strlen($pValue) > 1) { + #} elseif ($pValue{0} === '=' && strlen($pValue) > 1) { + return PHPExcel_Cell_DataType::TYPE_FORMULA; + } elseif (is_bool($pValue)) { + return PHPExcel_Cell_DataType::TYPE_BOOL; + } elseif (is_float($pValue) || is_int($pValue)) { + return PHPExcel_Cell_DataType::TYPE_NUMERIC; + } elseif (preg_match('/^[\+\-]?([0-9]+\\.?[0-9]*|[0-9]*\\.?[0-9]+)([Ee][\-\+]?[0-2]?\d{1,3})?$/', $pValue)) { + $tValue = ltrim($pValue, '+-'); + if (is_string($pValue) && $tValue{0} === '0' && strlen($tValue) > 1 && $tValue{1} !== '.' ) { + return PHPExcel_Cell_DataType::TYPE_STRING; + } elseif((strpos($pValue, '.') === false) && ($pValue > PHP_INT_MAX)) { + return PHPExcel_Cell_DataType::TYPE_STRING; + } + return PHPExcel_Cell_DataType::TYPE_NUMERIC; + } elseif (is_string($pValue) && array_key_exists($pValue, PHPExcel_Cell_DataType::getErrorCodes())) { + return PHPExcel_Cell_DataType::TYPE_ERROR; + } + + return PHPExcel_Cell_DataType::TYPE_STRING; + } +}