phpoffice/phpspreadsheet
PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine
5.9.0
335M downloads/mo
#143 most downloaded on composer
PHPOffice/PhpSpreadsheet
What this package is like to depend on
Last release 1 months ago
12 Jul 2026
Ships fairly regularly
a new release about every 6 weeks
Some releases are documented
notes for 79 of 138 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
140 releases · first in 2017
36 releases in the last 12 months
see the full history below
Release timeline
140 releases · Aug 2017 to Jul 2026Releases
latest 60 of 140-
5.9.012 Jul 2026Release notes
Open source →Removed
- Drop support for PHP 8.1, according to our published guidelines. PR #4907
Added
- Navigate Cell as Cursor. Issue #863 PR #4909
- Chart DataTables. Issue #413 PR #4911
- Permit Ignoring "Misleading Format" Tag. PR #4914
Changed
- Restructure parsing logic in Reader/Xlsx. PR #4830
Fixed
- Small improvement for Radar Charts. Issue #661 PR #4908
- Allow Use of Multiple Ranges When Setting Styles. Issue #411 PR #4910
- Small change to Writer Html. Issue #434 PR #4912
- Avoid hard-coding some chart Xml attributes. PR #4915
- Readers should directly access readFilter. PR #4919
- Very minor changes to Worksheet, Reader/Xlsx, and Worksheet/AutoFilter. Issue #4917 PR #4926
- Consistent HighestRow/Column after row/columnDelete. Issue #943 PR #4925
Release notes
Open source →Removed
- Drop support for PHP 8.1, according to our published guidelines. PR #4907
Added
- Navigate Cell as Cursor. Issue #863 PR #4909
- Chart DataTables. Issue #413 PR #4911
- Permit Ignoring "Misleading Format" Tag. PR #4914
Changed
- Restructure parsing logic in Reader/Xlsx. PR #4830
Fixed
- Small improvement for Radar Charts. Issue #661 PR #4908
- Allow Use of Multiple Ranges When Setting Styles. Issue #411 PR #4910
- Small change to Writer Html. Issue #434 PR #4912
- Avoid hard-coding some chart Xml attributes. PR #4915
- Readers should directly access readFilter. PR #4919
- Very minor changes to Worksheet, Reader/Xlsx, and Worksheet/AutoFilter. Issue #4917 PR #4926
- Consistent HighestRow/Column after row/columnDelete. Issue #943 PR #4925
-
5.8.112 Jul 2026Release notes
Open source →Last version with support for Php 8.1.
Added
- Navigate Cell as Cursor. Issue #863 PR #4909
- Chart DataTables. Issue #413 PR #4911
- Permit Ignoring "Misleading Format" Tag. PR #4914
Changed
- Restructure parsing logic in Reader/Xlsx. PR #4830
Fixed
- Small improvement for Radar Charts. Issue #661 PR #4908
- Allow Use of Multiple Ranges When Setting Styles. Issue #411 PR #4910
- Small change to Writer Html. Issue #434 PR #4912
- Avoid hard-coding some chart Xml attributes. PR #4915
- Readers should directly access readFilter. PR #4919
- Very minor changes to Worksheet, Reader/Xlsx, and Worksheet/AutoFilter. Issue #4917 PR #4926
- Consistent HighestRow/Column after row/columnDelete. Issue #943 PR #4925
-
5.8.007 Jun 2026Release notes
Open source →This will probably be the last release on the master branch that supports Php8.1.
Security Note
- File::prohibitWrappers and Drawing::setPath now reject phar paths with extra leading slashes (e.g. phar:///…) that escaped the prior parse_url-based filter. No security exploit was possible even with the extra slashes. PR #4876
Added
- Optional method to increase Calculation Engine's parsing speed. PR #4829
- Html Writer/Reader new data attributes. PR #4858
- IReader2 interface extending IReader with listWorksheetInfo/Names. Issue #4883 PR #4886
Changed
- Helper/Handler is now internal and final. PR #4896
Fixed
Release notes
Open source →Security Note
- File::prohibitWrappers and Drawing::setPath now reject phar paths with extra leading slashes (e.g. phar:///…) that escaped the prior parse_url-based filter. No security exploit was possible even with the extra slashes. PR #4876
Added
- Optional method to increase Calculation Engine's parsing speed. PR #4829
- Html Writer/Reader new data attributes. PR #4858
- IReader2 interface extending IReader with listWorksheetInfo/Names. Issue #4883 PR #4886
Changed
- Helper/Handler is now internal and final. PR #4896
Fixed
-
5.7.020 Apr 2026 -
5.6.010 Apr 2026Release notes
Open source →Added
- Make Reader/Csv Extendable, add new preferred Reader/CsvNoEscape class. Issue #4836 PR #4837 PR #4845
- XLOOKUP function. Issue #1453 PR #4844
- Introduction of a benchmark test suite, independent of the default unit test suite. Users can use it as a template for experimenting and making decisions concerning performance. PR #4824
Deprecated
- Collection/Cells::MAX_COLUMN_ID - use Cell/AddressRange::MAX_COLUMN_INT.
- Writer/Xls/Worksheet constants MAX_XLS_COLUMN, MAX_XLS_COLUMN_STRING, MAX_XLS_ROW - use Cell/AddressRange MAX_COLUMN_INT_XLS, MAX_COLUMN_XLS, MAX_ROW_XLS
Fixed
- Consistent handling of row and column limits. PR #4820
- Problems with Html Conditional Formatting Colorscale. Issue #4838 PR #4839
- Fixed an issue where Date detection could misclassify invalid numeric values as dates. PR #4841
- Ods Reader/Writer Integer Styles with Leading Zeros. Issue #1606 PR #4822
- Xlsx Writer Data URI for Images. Issue #4823 PR #4831
- Confusion Checking for Union Arguments. Issue #4832 PR #4835
- Reader Xlsx Hyperlink with Anchor. Issue #4842 PR #4843
-
5.5.001 Mar 2026Release notes
Open source →Added
- Much improved handling of Styles by Ods Reader. The relevant changes are listed at the end of the "Fixed" section below.
- Option to use OldCalculatedValue in ToArray and Relatives. Issue #1810 PR #4787
- Add checkbox style (Xlsx and Html). PR #4781
- Option to whitelist external images. PR #4793
- Writer/Html add ability to set line ending. PR #4779
- Writer/Html optionally save formulas as data attributes. PR #4783
- User-supplied headers and footers in PDF. Issue #3159 PR #4789
Deprecated
- Writer/Html constant BODY_LINE no longer makes sense with a configurable line ending. No replacement.
- Calculation classes FormulaParser and FormulaToken are unused. No replacement.
- Writer/Xls/Worksheet methods insertBitMap, positionImage, writeObjPicture, processBitmapGd, and processBitmap are unused. No replacement.
Fixed
- Improve performance in value binders. PR #4780
- Handle Unions as Function Arguments. Issue #4656 Issue #316 Issue #503 PR #4657
- Unexpected Behavior of CONCATENATE. Issue #4061 PR #4797
- Image Css size in millimeters. Issue #4800 PR #4801
- Ods Reader column misalignment. Issue #4802 PR #4803
- Ods improved handling of number formats. Issue #3961 Issue #4798 PR #4806
- Ods Reader fonts and fills. Issue #2622 Issue #1191 PR #4810
- Ods Reader alignment and cell protection. PR #4813
- Ods Reader borders. PR #4814
- Ods Reader column styles (partial). PR #4815
-
5.4.011 Jan 2026Release notes
Open source →Added
- Store image in cell (Xlsx only). Issue #4014 Issue #4034 Issue #913 PR #4677
- Passthrough support (with some restrictions) for otherwise unsupported drawing elements. Issue #4037 Issue #4704 PR #4712
- Set all locale variables at once in a threadsafe manner. Issue #954 PR #4760
- Reader/Html add ability to suppress warning messages from loadhtml. Issue #647 Issue #849 PR #4761
Changed
- Evaluation of WEBSERVICE no longer requires external client, but will use oldCalculatedValue unless the request is for a domain in a user-supplied whitelist. PR #4751
Moved
- Code to merge cell base style with table and conditional styles moved from Html Writer to its own class. Issue #1058 PR #4763
Deprecated
- Settings methods setHttpClient, unsetHttpClient, getHttpClient, and getRequestFactory are no longer used. No replacement.
- Reader/Html protected property dataArray, described as used only for testing, is not used for testing. No replacement.
Fixed
- Slightly better support for escaped characters in Xlsx Reader/Writer. Discussion #4724 PR #4726
- CODE/UNICODE and CHAR/UNICHAR. PR #4727
- Minor changes to TextGrid. PR #4735 PR #4743
- Single-character table names. Issue #4739 PR #4740
- Improvements to SORT and SORTBY. PR #4743
- Coverage-related changes in Shared. PR #4745
- ListWorksheetInfo improvements for Xlsx and Ods. Issue #3255 PR #4746
- Fix functions related to Student-T distribution. Issue #4167 PR #4748
- Fix drawing hyperlinks. Issue #993 PR #4764
- Fix clone spreadsheet with defined names. PR #4753
- Changes to WEBSERVICE. PR #4751
- More consistent handling of unsupported functions. Issue #606 PR #4772
- Chart shadow
kxandky. PR #4770 - SUBTOTAL and hidden rows. Issue #820 PR #4765
- Fix some hyperlink problems. Issue #3889 Issue #2464 PR #4771
- Xls Writer and empty RichText. Issue #918 PR #4769
- Strings that look like huge floating-point numbers. Issue #4766 PR #4768
- Rowspan in Html. Issue #1319 PR #4767
- Mpdf styling of multi-line strings. Issue #4773 PR #4775
-
5.3.024 Nov 2025Release notes
Open source →Added
- Formal support for Php8.5.
- Limited Printarea support for Html/Pdf. Issue #3941 PR #4711
- Implement missing
INFOfunction. PR #4709 - Implement missing
BAHTTEXTfunction. PR #4715
Deprecated
- $dataType, the second parameter of Cell::setValueExplicit, is currently optional. Omitting it is deprecated, and it will be required in a future release.
Fixed
- Protected ranges and insert/delete rows/columns. Issue #4695 PR #4702
- Unexpected Exception in Php DateTime. Issue #4696 Issue #917 PR #4697
- Add missing Dutch translation to translation file. PR #4707
- Fix lots of typos throughout codebase. PR #4705
- Apply small code style improvements. PR #4708
-
5.2.026 Oct 2025Release notes
Open source →Added
- This release should be usable with Php8.5 Release Candidates without deprecation messages.
- Option to display numbers with less precision. Issue #4626 PR #4640
- Offer Tcpdf Interface which throws exception rather than die. PR #4666
- Xls Reader ListWorksheetDimensions method. PR #4689
Deprecated
- Worksheet::getHashInt serves no useful purpose. No replacement.
- Spreadsheet::getId serves no useful purpose. No replacement.
Fixed
- Performance improvement when working with large amounts of cells. Issue #4607 PR #4609
- Minor improvements to Calculation coverage. PR #4624
- Conditional formatting in extLst. Issue #4629 PR #4633
- Php8.5 deprecates use of null as array index. PR #4634
- Wrapped cells and default row height. Issue #4584 PR #4645
- For Php8.5, replace one of our two uses of
__wakeupwith__unserialize, and eliminate the other. PR #4639 - Use prefix _xlfn for BASE function. Issue #4638 PR #4641
- Warning messages with corrupt Xls file. Issue #4647 PR #4648
- Additional support for union and intersection. PR #4596
- Missing array keys x,o,v for Xml Reader. Issue #4668 PR #4669
- Missing array key x for Xlsx Reader VML. Issue #4505 PR #4676
- Better support for Style Alignment Read Order. Issue #850 PR #4655
- More sophisticated workbook password algorithms (Xlsx only). Issue #4673 PR #4675
- Xls Writer fix DIMENSIONS record. Issue #4682 PR #4687
- Xls Reader listWorksheetInfo process MULRK records. PR #4689
- Make Reader Xls Escher generic. PR #4690
-
5.1.004 Sep 2025Release notes
Open source →Added
- Add Conditional Formatting with IconSet (Xlsx only). Issue #4560 PR #4574
- Copy cell adjusting formula. Issue #1203 PR #4577
- splitRange and ProtectedRange. Issue #1457 PR #4580
- Option to create Blank Sheet if LoadSheetsOnly doesn't find any. PR #4618
Fixed
- Google-only formulas exported from Google Sheets. Issue #1637 PR #4579
- Maximum column width. PR #4581
- PrintArea after row/column delete. Issue #2912 PR #4598
- Remove deprecated imagedestroy call. PR #4625
- Excel 2007 problem with newlines. Issue #4619 PR #4620
- Compatibility changes for Php 8.5. PR #4601 PR #4611
-
5.0.010 Aug 2025Release notes
Open source →Breaking Changes
- Images will be loaded from an external source (e.g. http://example.com/img.png) only if the reader is explicitly set to allow it via
$reader->setAllowExternalImages(true). We do not believe that loading of external images is a widely used feature. - Deletion of items deprecated in Release 4. See "removed" below.
- Move some properties from Base Reader to Html Reader. PR #4551
- DefaultValueBinder will treat integers with more than 15 digits as strings. Issue #4522 PR #4527
Removed
- Theme public constants COLOR_SCHEME_2013_PLUS_NAME (use COLOR_SCHEME_2013_2022_NAME) and COLOR_SCHEME_2013_PLUS (use COLOR_SCHEME_2013_2022).
Fixed
- Additional floating-point precision changes. Issue #1324 PR #4575
- Header/Footer images expand location. Issue #484 Issue #1318 PR #4572
- Create uninitialized cell if used in calculation. Issue #4558 Issue #4530 PR #4565
- Shared/Date::isDateTime handle cells which calculate as arrays. Issue #4557 PR #4562
- Xlsx Writer eliminate xml:space from non-text nodes. Issue #4542 PR #4556
- Images will be loaded from an external source (e.g. http://example.com/img.png) only if the reader is explicitly set to allow it via
-
4.5.024 Jul 2025Release notes
Open source →Added
- Add to all readers the option to allow or forbid fetching external images. This is unconditionally allowed now. The default will be set to "allow", so no code changes are necessary. However, we are giving consideration to changing the default. PR #4543
- Address Excel Inappropriate Number Format Substitution. PR #4532
Fixed
- Html Writer Conditional Formatting Inline Css. Issue #4539 PR #4541
- Do not use htmlspecialchars when formatting XML. Issue #4537 PR #4540
- Writer Html/Pdf support RTL alignment of tables. Issue #1104 PR #4535
- Xlsx Reader use dynamic arrays if spreadsheet did so. PR #4533
- Ods Reader Nested table-row. Issue #4528 Issue #2507 PR #4531
- Recognize application/x-empty mimetype. Issue #4521 PR #4524
- Micro-optimization in getSheetByName. PR #4499
- Bug in resizeMatricesExtend. Issue #4451 PR #4474
- Allow Replace of Dummy Function with Custom Function. PR #4544
- Preserve 0x0a in Strings if Desired. Issue #347 PR #4536
-
4.4.023 Jun 2025Release notes
Open source →Added
- VSTACK and HSTACK. Issue #4485 PR #4492
- TOCOL and TOROW. PR #4493
- Support Current Office Theme. PR #4500
Deprecated
- Theme constants COLOR_SCHEME_2013_PLUS_NAME (use COLOR_SCHEME_2013_2022_NAME) and COLOR_SCHEME_2013_PLUS (use COLOR_SCHEME_2013_2022).
Fixed
- Various Writers RichText TextElement Should Inherit Cell Style. Issue #1154 PR #4487
- Minor Changes to FILTER function. PR #4491
- Allow Xlsx Reader/Writer to support Font Charset. Issue #2760 PR #4501
- AutoColor for LibreOffice Dark Mode Discussion 4502 PR #4503
- Xlsx Style Writer Minor Refactoring. PR #4508
- Allow Xlsx Reader to Specify ParseHuge. Issue #4260 PR #4515
-
4.3.126 May 2025 -
4.3.026 May 2025Release notes
Open source →Added
- Xml Reader recognize indents. Issue #4448 PR #4449
Changed
- Phpstan Level 10.
Fixed
- Micro-optimization for excelToDateTimeObject. Issue #4438 PR #4442
- Removing Columns/Rows Containing Merged Cells. Issue #282 PR #4465
- Print Area and Row Break. Issue #1275 PR #4450
- Copy Styles after insertNewColumnBefore. Issue #1425 PR #4468
- Xls Writer Treat Hyperlink Starting with # as Internal. Issue #56 PR #4453
- More Precision for Float to String Casts. Issue #3899 PR #4479
- Hyperlink Styles. Issue #1632 PR #4478
- ODS Handling of Ceiling and Floor. Issue #477 PR #4466
- Xlsx Reader Do Not Process Printer Settings for Dataonly. Issue #4477 PR #4480
-
4.2.017 Apr 2025Release notes
Open source →Added
- Add ability to add custom functions to Calculation. PR #4390
- Add FormulaRange to IgnoredErrors. PR #4393
- TextGrid improvements. PR #4418
- Permit read to class which extends Spreadsheet. Discussion #4402 PR #4404
- Conditional and table formatting support for html writer PR #4412
Changed
- Phpstan Version 2. PR #4384
- Start migration to Phpstan level 9. PR #4396
- Calculation locale logic moved to separate class. PR #4398
- TREND_POLYNOMIAL_* and TREND_BEST_FIT do not work, and are changed to throw Exceptions if attempted. (TREND_BEST_FIT_NO_POLY works.) An attempt to use an unknown trend type will now also throw an exception. Issue #4400 PR #4339
- Month parameter of DATE function will now return VALUE if an ordinal string (e.g. '3rd') is used, but will accept bool or null. PR #4420
Fixed
- Ignore fractional part of Drawing Shadow Alpha. Issue #4415 PR #4417
- BIN2DEC, OCT2DEC, and HEX2DEC return numbers rather than strings. Issue #4383 PR #4389
- Fix TREND_BEST_FIT_NO_POLY. Issue #4400 PR #4339
- Ods Reader No DataType for Null Value. Issue #4435 PR #4436
- Column widths not preserved when using read filter. Issue #4416 PR #4423
- Fix typo in Style exportArray quotePrefix. Issue #4422 PR #4424
- Tweak Spreadsheet clone. PR #4419
- Better handling of Chart DisplayBlanksAs. Issue #4411 PR #4414
-
4.1.002 Mar 2025Release notes
Open source →Added
- Support Justify Last Line. Issue #4374 PR #4373
- Allow Spreadsheet clone. PR #4370
Changed
- ListWorksheetInfo will now return sheetState (visible, hidden, veryHidden). Issue #4345 PR #4366
- Start migration to Phpstan 2. PR #4359
- IOFactory identify can return, and createReader and CreateWriter can accept, a class name rather than a file type. Issue #4357 PR #4361
Fixed
- Refactor Helper/Html. PR #4359
- Handle #REF! as Argument to AVERAGEIF/COUNTIF/SUMIF. Issue #4381 PR #4382
- Ignore ignoredErrors when not applicable. Issue #4375 PR #4377
- Better handling of defined names on sheets whose titles include apostrophes. Issue #4356 Issue #4362 Issue #4376 PR #4360
- Partial solution for removing rows or columns that include edge ranges. Issue #1449 PR #3528
- Prefer mb_str_split to str_split. PR #3341
-
4.0.008 Feb 2025Release notes
Open source →BREAKING CHANGES
- Data Validations will be stored by worksheet, not cell. Index can be one or more cells or cell ranges. Issue #797 Issue #4091 Issue #4206 PR #4240
- Conditional Formatting adds Priority property and handles overlapping ranges better. Issue #4312 Issue #4318 PR #4314
- Csv Reader will no longer auto-detect Mac line endings by default. Prior behavior can be explicitly enabled via
setTestAutoDetect(true), and it will not be possible at all with Php9+. Issue #4092 PR #4340 - Html Writer will now use "better boolean" logic. Booleans will now be output by default as TRUE/FALSE rather than 1/null-string. Prior behavior can be explicitly enabled via
setBetterBoolean(false). PR #4340 - Xlsx Writer will now use false as the default for
forceFullCalc. This affects writes withpreCalculateFormulasset to false. Prior behavior can be explicitly enabled viasetForceFullCalc(null).PR #4340 - Deletion of items deprecated in Release 3. See "removed" below.
Added
- Pdf Charts and Drawings. Discussion #4129 Discussion #4168 PR #4327
- Allow spreadsheet serialization. Discussion #4324 Issue #1741 Issue #1757 PR #4326
Removed
- Worksheet::getStyles - no replacement. PR #4330
- The following items were deprecated in release 3 and are now removed.
- Drawing::setIsUrl - no replacement.
- Settings::setLibXmlLoaderOptions() and Settings::getLibXmlLoaderOptions() - no replacement.
- Worksheet::getHashCode - no replacement.
- IReader::SKIP_EMPTY_CELLS - use its alias IGNORE_EMPTY_CELLS instead.
- Worksheet::getProtectedCells - use getProtectedCellRanges instead.
- Writer/Html::isMpdf property - use instanceof Mpdf instead.
Fixed
- Xls writer Parser Mishandling True/False Argument. Issue #4331 PR #4333
- Xls writer Parser Parse By Character Not Byte. PR #4344
- Minor changes to dynamic array calculations exposed by using explicit array return types in some tests. PR #4328
-
3.10.712 Jul 2026 -
3.10.607 Jun 2026Release notes
Open source →Security Note
- File::prohibitWrappers and Drawing::setPath now reject phar paths with extra leading slashes (e.g. phar:///…) that escaped the prior parse_url-based filter. No security exploit was possible even with the extra slashes. Backport of PR #4876
Fixed
-
3.10.519 Apr 2026Nothing published for this version
-
3.10.410 Apr 2026Nothing published for this version
-
3.10.311 Jan 2026Nothing published for this version
-
3.10.224 Nov 2025Nothing published for this version
-
3.10.101 Sep 2025Nothing published for this version
-
3.10.010 Aug 2025Nothing published for this version
-
3.9.323 Jul 2025Nothing published for this version
-
3.9.223 Jun 2025Nothing published for this version
-
3.9.108 Feb 2025Nothing published for this version
-
3.9.026 Jan 2025Release notes
Open source →Added
- Methods to get style for row or column. PR #4317
- Method for duplicating worksheet in spreadsheet. PR #4315
Fixed
- Security patch for control characters in protocol.
- Ods Reader Sheet Names with Period. Issue #4311 PR #4313
- Mpdf and Tcpdf Hidden Columns and Merged Cells. Issue #4319 PR #4320
- Html Writer Allow mailto. Issue #4316 PR #4322
- Use composer/pcre rather than preg_* in Writer. PR #4323
-
3.8.012 Jan 2025Release notes
Open source →Added
- CHOOSECOLS, CHOOSEROWS, DROP, TAKE, and EXPAND. PR #4286
Fixed
- Security patch for Html navigation.
- Xlsx Reader Shared Formula with Boolean Result. Partial solution for Issue #4280 PR #4281
- Retitling cloned Worksheets. Issue #641 PR #4302
- Extremely limited support for GROUPBY function. Partial response to Issue #4282 PR #4283
-
3.7.027 Dec 2024Release notes
Open source →Deprecated
- Drawing::setIsUrl is unneeded. The property is set when setPath determines whether path is a url.
Fixed
- Security patches for Samples.
- Security patches for Html Writer.
- Avoid unexpected charset in currency symbol. PR #4279
- Add forceFullCalc option to Xlsx Writer. Issue #4269 PR #4271
- More context options may be needed for http(s) image. Php issue 17121 PR #4276
- Coverage-related tweaks to Xls Reader. PR #4277
- Several fixed to ODS Writer. Issue #4261 PR #4263 PR #4264 PR #4266
-
3.6.008 Dec 2024Release notes
Open source →Fixed
- Html Reader/Writer Better Handling of Booleans. PR #4257
- Fill Patterns/Colors When Xml Attributes are Missing. Issue #4248 PR #4250
- Remove Unneccesary files from Composer Package. PR #4262
- Swapped row and column indexes in ReferenceHelper. Issue #4246 PR #4247
- Fix minor break handling drawings. Issue #4241 PR #4244
- Ignore cell formatting when the format is a single @. Issue #4242 PR #4243
- Upgrade Dompdf to Php-8.4 compatible version PR #4267
-
3.5.022 Nov 2024Release notes
Open source →Changed
- Settings::libXmlLoaderOptions is ignored. PR #4233
Deprecated
- Settings::setLibXmlLoaderOptions() and Settings::getLibXmlLoaderOptions() are no longer needed - no replacement.
- Worksheet::getHashCode is no longer needed.
Fixed
- Add support for
<s>tag when converting HTML to RichText. Issue #4223 PR #4224 - Change hash code for worksheet. Issue #4192 PR #4207
-
3.4.010 Nov 2024Release notes
Open source →Security Fix
- Several security patches.
Added
- Add Dynamic valueBinder Property to Spreadsheet and Readers. Issue #1395 PR #4185
- Allow Omitting Chart Border. Issue #562 PR #4188
- Method to Test Whether Csv Will Be Affected by Php9. PR #4189
Changed
- Refactor Xls Reader. PR #4118
Deprecated
- IReader::SKIP_EMPTY_CELLS - use its alias IGNORE_EMPTY_CELLS instead.
- Worksheet::getProtectedCells was deprecated in release 2, but was not properly documented, and not removed in release 3. Use getProtectedCellRanges instead.
- Writer/Html::isMpdf property was deprecated in release 2, but was not properly documented, and not removed in release 3. Use instanceof Mpdf instead.
Fixed
- Xls Writer Condtional Rules Applied to Whole Rows or Columns. Issue #3185 PR #4152
- Xlsx Writer Duplicate ContentTypes Entry for Background Image. Issue #4179 PR #4180
- Check strictNullComparison outside of loops. PR #3347
- SUMIFS Does Not Require xlfn. Issue #4182 PR #4186
- Image Transparency/Opacity with Html Reader Changes. Discussion #4117 PR #4142
- Option to Write Hyperlink Rather Than Label to Csv. Issue #1412 PR #4151
- Invalid Html Due to Cached Filesize. Issue #1107 PR #4184
- Excel 2003 Allows Html Entities. Issue #2157 PR #4187
- Changes to ROUNDDOWN/ROUNDUP/TRUNC. Issue #4213 PR #4214
- Writer Xlsx ignoredErrors Before Drawings. Issue #4200 Issue #4145 PR #4212
- Allow ANCHORARRAY as Data Validation list. Issue #4197 PR #4203
-
3.3.029 Sep 2024Release notes
Open source →Dynamic Arrays
- Support for Excel dynamic arrays is added. It is an opt-in feature, so our hope is that there will be no BC breaks, but it is a very large change. Full support is added for Xlsx. It is emulated as Ctrl-Shift-Enter arrays for Ods read and write and Excel2003 and Gnumeric read. Html/Pdf and Csv writers will populate cells on output if they are the result of array formulas. No support is added for Xls or Slk.
Added
- Excel Dynamic Arrays. Issue #3901 Issue #3659 Issue #1834 PR #3962
- String Value Binder Allow Setting "Ignore Number Stored as Text". PR #4141
Changed
- Xlsx Reader default datatype when none is specified in Xml is changed from string to numeric, which is how Excel treats it. There is expected to be little impact because DefaultValueBinder and AdvancedValueBinder correct mis-identification as string, and StringValueBinder usually expects string. PR #4139
- Currency and Accounting Wizards are changed to act like Excel, and a new CurrencyBase Wizard is added for for non-Excel formats. Issue #4125 Issue #4124 PR #4127
- Images will not be added to spreadsheet if they cannot be validated as images.
Removed
- The following items were deprecated in release 2 and are now removed.
- Writer\Xls\Style\ColorMap (no longer needed).
- Reader\Xml::trySimpleXMLLoadString (should not have been public, no public replacement).
- Calculation\Calculation::_translateFormulaToLocale (use method name translateFormulaToLocale without leading underscore).
- Calculation\Calculation::_translateFormulaToEnglish (use method name translateFormulaToEnglish without leading underscore).
Fixed
- Several security patches.
- Xls Reader Some Ranges Not Handled Properly. Issue #1570 PR #4140
- Better Handling of legacyDrawing Xml. Issue #4105 PR #4122
- Improve Xlsx Reader Speed. Issue #3917 PR #4153
-
2.4.712 Jul 2026 -
2.4.607 Jun 2026Release notes
Open source →Security Note
- File::prohibitWrappers and Drawing::setPath now reject phar paths with extra leading slashes (e.g. phar:///…) that escaped the prior parse_url-based filter. No security exploit was possible even with the extra slashes. Backport of PR #4876
Fixed
-
2.4.519 Apr 2026Nothing published for this version
-
2.4.410 Apr 2026Nothing published for this version
-
2.4.311 Jan 2026Nothing published for this version
-
2.4.224 Nov 2025Nothing published for this version
-
2.4.101 Sep 2025Nothing published for this version
-
2.4.010 Aug 2025Nothing published for this version
-
2.3.1023 Jul 2025Nothing published for this version
-
2.3.923 Jun 2025Nothing published for this version
-
2.3.808 Feb 2025Nothing published for this version
-
2.3.726 Jan 2025Nothing published for this version
-
2.3.612 Jan 2025Nothing published for this version
-
2.3.527 Dec 2024Nothing published for this version
-
2.3.408 Dec 2024Nothing published for this version
-
2.3.322 Nov 2024Nothing published for this version
-
2.3.210 Nov 2024Nothing published for this version
-
2.3.029 Sep 2024Nothing published for this version
-
2.2.208 Aug 2024Release notes
Open source →Fixed
- Html Reader Preserve Unicode Whitespace. Issue #1284 PR #4106
- RATE Function Floating Point Number of Periods. PR #4107
- Parameter Name Change Xlsx Writer Workbook. Issue #4108 PR #4111
- New Algorithm for TRUNC, ROUNDUP, ROUNDDOWN. Issue #4113 PR #4115
- Worksheet applyStylesFromArray Retain Active Cell (Excel 16 was having a problem with some files). Issue #4128 PR #4132
-
2.2.129 Jul 2024Release notes
Open source →Security Fix
- Prevent XXE when loading files PR #4119
Fixed
- Add Sheet may leave Active Sheet uninitialized. Issue #4112 PR #4114
- Reference to Defined Name Specifying Worksheet. Issue #206 PR #4096
- Xls Reader Print/Show Gridlines. Issue #912 PR #4098
- ODS Reader Allow Omission of Page Settings Tags. Issue #4099 PR #4101
-
2.2.024 Jul 2024Release notes
Open source →Added
- Xlsx Reader Optionally Ignore Rows With No Cells. Issue #3982 PR #4035
- Means to change style without affecting current cell/sheet. PR #4073
- Option for CSV output file to have varying numbers of columns for each row. Issue #1415 PR #4076
Changed
- On read, Xlsx Reader had been breaking up union ranges into separate individual ranges. It will now try to preserve range as it was read in. PR #4042
- Xlsx/Xls spreadsheet calculation and formatting of dates will use base date of spreadsheet even when spreadsheets with different base dates are simultaneously open. Issue #1036 Issue #1635 PR #4071
Deprecated
- Writer\Xls\Style\ColorMap is no longer needed.
Fixed
- Incorrect Reader CSV with BOM. Issue #4028 PR #4029
- POWER Null/Bool Args. PR #4031
- Do Not Output Alignment and Protection for Conditional Format. Issue #4025 PR #4027
- Conditional Color Scale Improvements. Issue #4049 PR #4050
- Mpdf and Tcpdf Borders on Merged Cells. Issue #3557 PR #4047
- Xls Conditional Format Improvements. PR #4030 PR #4033
- Conditional Range Unions and Intersections Issue #4039 PR #4042
- Ods comments with newlines. Issue #4081 PR #4086
- Propagate errors in Text functions. Issue #2581 PR #4080
- Csv Reader allow use of html mimetype. Issue #4036 PR #4040
- Problem rendering line chart with missing plot label. PR #4074
- More RTL in Xlsx/Html Comments Issue #4004 PR #4065
- Empty String in sharedStrings. Issue #4063 PR #4064
- Xlsx Writer RichText and TYPE_STRING. Issue #476 PR #4094
- Ods boolean data. Issue #460 PR #4093
- Html Writer Minor Fixes. PR #4089
- Changes to INDEX function. Issue #64 PR #4088
- Ods Reader and Whitespace Text Nodes. Issue #804 PR #4087
- Ods Xml Reader and Whitespace Text Nodes. Issue #804 PR #4087
- Treat invalid formulas as strings. Issue #1310 PR #4073
-
2.1.1812 Jul 2026 -
2.1.1707 Jun 2026Release notes
Open source →Security Note
- File::prohibitWrappers and Drawing::setPath now reject phar paths with extra leading slashes (e.g. phar:///…) that escaped the prior parse_url-based filter. No security exploit was possible even with the extra slashes. Backport of PR #4876
Fixed
- Security patches.
-
2.1.1619 Apr 2026Nothing published for this version