diff --git a/src/PhpSpreadsheet/Cell/DefaultValueBinder.php b/src/PhpSpreadsheet/Cell/DefaultValueBinder.php index 10c5c93c59..0868576cae 100644 --- a/src/PhpSpreadsheet/Cell/DefaultValueBinder.php +++ b/src/PhpSpreadsheet/Cell/DefaultValueBinder.php @@ -12,6 +12,8 @@ class DefaultValueBinder implements IValueBinder { + const EXCEL_MAX_INT = 9007199254740992; // 2^53, max safe integer in JavaScript + /** * Bind value to a cell. * @@ -93,7 +95,7 @@ public static function dataTypeForValue(mixed $value): string $tValue = ltrim($value, '+-'); if (strlen($tValue) > 1 && $tValue[0] === '0' && $tValue[1] !== '.') { return DataType::TYPE_STRING; - } elseif ((!str_contains($value, '.')) && ($value > PHP_INT_MAX)) { + } elseif ((!str_contains($value, '.')) && ($value > self::EXCEL_MAX_INT)) { return DataType::TYPE_STRING; } elseif (!is_numeric($value)) { return DataType::TYPE_STRING;