fix: data loss for numeric value greater than excel supported max value #4523
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is:
Checklist:
Why this change is needed?
This change is necessary because PHP_INT_MAX represents the maximum integer value supported by PHP on the current platform, which can be larger than what Excel or JavaScript can safely handle (specifically, numbers above 2^53 lose precision in JavaScript and Excel). By switching to self::EXCEL_MAX_INT (2^53), the code ensures that any integer value larger than what Excel can safely represent is treated as a string, preventing precision loss and data corruption when exporting to Excel. This makes the behavior consistent and safe across different platforms and environments.
Reference issue #4522