Version 5.0 (2025-08-10)
Breaking Changes
Removed Deprecated Items
The following items deprecated in Release 4 have been removed:- Theme public constants:
COLOR_SCHEME_2013_PLUS_NAME(useCOLOR_SCHEME_2013_2022_NAME) andCOLOR_SCHEME_2013_PLUS(useCOLOR_SCHEME_2013_2022)
Reader Property Changes
Some properties have been moved from Base Reader to Html Reader. See PR #4551.DefaultValueBinder Behavior
DefaultValueBinder will now treat integers with more than 15 digits as strings to prevent precision loss. Issue #4522Key Fixes
- Additional floating-point precision improvements Issue #1324
- Header/Footer images path expansion Issue #484
- Create uninitialized cells when used in calculations Issue #4558
- Fixed
Shared/Date::isDateTimeto handle cells with array results Issue #4557
Version 4.0 (2025-02-08)
Breaking Changes
Data Validations Storage
Conditional Formatting Changes
Conditional Formatting now includes a Priority property and handles overlapping ranges better. Issue #4312CSV Reader Mac Line Endings
Html Writer Boolean Output
Html Writer now uses “better boolean” logic by default. Booleans will be output asTRUE/FALSE instead of 1/null-string. Restore old behavior with setBetterBoolean(false).
Xlsx Writer Force Full Calc
Xlsx Writer now defaults tofalse for forceFullCalc. This affects writes with preCalculateFormulas set to false. Restore old behavior with setForceFullCalc(null).
Removed Items
The following items deprecated in Release 3 have been removed:Worksheet::getStyles- no replacementDrawing::setIsUrl- no replacementSettings::setLibXmlLoaderOptions()andSettings::getLibXmlLoaderOptions()- no replacementWorksheet::getHashCode- no replacementIReader::SKIP_EMPTY_CELLS- useIGNORE_EMPTY_CELLSinsteadWorksheet::getProtectedCells- usegetProtectedCellRangesinsteadWriter/Html::isMpdfproperty - useinstanceof Mpdfinstead
Added Features
- PDF Charts and Drawings: Charts and drawings are now supported in PDF output Discussion #4129
- Spreadsheet Serialization: Spreadsheets can now be serialized Discussion #4324
Version 3.0 (2024-09-29)
Dynamic Arrays Support
Support for Excel dynamic arrays has been added as an opt-in feature. Full support is available for Xlsx format. It’s emulated as Ctrl-Shift-Enter arrays for Ods, Excel2003, and Gnumeric. No support for Xls or Slk formats.
Breaking Changes
Xlsx Reader Default Datatype
Default datatype when none is specified in XML changed from string to numeric, matching Excel’s behavior. Most users won’t be affected asDefaultValueBinder and AdvancedValueBinder correct the mis-identification.
Currency and Accounting Wizards
Currency and Accounting Wizards now match Excel behavior. A newCurrencyBase Wizard has been added for non-Excel formats. Issue #4125
Image Validation
Removed Items
The following items deprecated in Release 2 have been removed:Writer\Xls\Style\ColorMap- no longer neededReader\Xml::trySimpleXMLLoadString- should not have been publicCalculation\Calculation::_translateFormulaToLocale- usetranslateFormulaToLocale(without underscore)Calculation\Calculation::_translateFormulaToEnglish- usetranslateFormulaToEnglish(without underscore)
Version 2.0 Key Features
Minor Breaking Change (2.2.0)
Key Additions
- Conditional Formatting with IconSet (Xlsx only) Issue #4560
- Copy cells with formula adjustment Issue #1203
- splitRange and ProtectedRange support Issue #1457
- Xlsx Reader option to ignore empty rows Issue #3982
- CSV writer with varying column counts Issue #1415
Important Changes
Range Preservation
Xlsx Reader now tries to preserve union ranges as they were read in, instead of breaking them into separate ranges. PR #4042Date Calculations
Xlsx/Xls spreadsheet calculations and date formatting now use the base date of the spreadsheet, even when spreadsheets with different base dates are simultaneously open. Issue #1036PHP Version Support
For maintained branches, support for PHP versions will only be maintained for six months beyond the end of life of that PHP version.
Current Requirements
- Minimum PHP Version: 8.1
- Support Period: Until June 30, 2026
composer.json for other requirements.
Common Upgrade Tasks
Updating External Image Loading (5.0+)
If you need to load external images:Updating Boolean Output in HTML (4.0+)
To restore old boolean output behavior:Updating CSV Mac Line Ending Detection (4.0+)
To enable Mac line ending auto-detection:Migrating to Dynamic Arrays (3.0+)
Dynamic arrays are opt-in. To enable:Replacing Deprecated Methods
Replace deprecated methods before upgrading:Testing Your Upgrade
After upgrading, thoroughly test your application, especially:
- External image loading (if used)
- Boolean value rendering in HTML output
- CSV file reading with Mac line endings
- Data validation and conditional formatting logic
- Large integer handling (15+ digits)
Recommended Testing Steps
- Run your test suite to catch any immediate breaking changes
- Test file reading with various formats (Xlsx, Csv, Ods, etc.)
- Verify calculations especially if using dynamic arrays
- Check rendered output for HTML and PDF exports
- Validate data integrity for cells with large numbers or specific datatypes
Getting Help
If you encounter issues during migration:- Check the GitHub Issues for known problems
- Review the complete CHANGELOG
- Ask questions on Stack Overflow with the
phpspreadsheettag - Join the Gitter chat for community support

