Last active
December 4, 2019 16:31
-
-
Save ahmeti/f846b2ff510de8831e4359d8e1526cdd to your computer and use it in GitHub Desktop.
Fix PHP Excel for PHP v7.4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| // ... | |
| // Location: /phpoffice/phpexcel/Classes/PHPExcel/Cell/DefaultValueBinder.php | |
| /** | |
| * 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 (is_string($pValue) && $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; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment