NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #147 most downloaded on Packagist
PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine
Last release 20 days ago
17 Sep 2026
Ships fairly regularly
a new release about every 6 weeks
Some releases are documented
notes for 29 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
145 releases · first in 2017
XLSX password-to-open encryption and decryption using Office Agile encryption. Issue #3878 PR #4975 PR #4988
Worksheet\PivotTable\PivotTable objects (name, location, source cache definition, and row/column/page/data field layout), accessible via Worksheet::getPivotTableCollection() / getPivotTableByName(). Pivot tables (their tables, caches and records) are now also preserved through an Xlsx load/save round-trip instead of being silently dropped. Issue #4534Worksheet::getStyle() on every Cell::setValueExplicit() unless quote-prefix must change. On a dense 40k-cell populate+save microbenchmark this cut wall time by ~5%. PR #4958="THIS IS E1" is written unchanged instead of as ="THIS IS [.E1]". Issue #4454 PR #4962One column per quarter.
Drop support for PHP 8.1 , according to our published guidelines . PR #4907
Last version with support for Php 8.1.
Last version with support for Php 8.1.
Work around Php8.6 deprecation in mpdf/mpdf. PR #4878
This will probably be the last release on the master branch that supports Php8.1.
### Fixed - Security patches.
Make Reader/Csv Extendable, add new preferred Reader/CsvNoEscape class. Issue #4836 PR #4837 PR #4845
Much improved handling of Styles by Ods Reader. The relevant changes are listed at the end of the "Fixed" section below.
Store image in cell (Xlsx only). Issue #4014 Issue #4034 Issue #913 PR #4677
kx and ky. PR #4770$dataType, the second parameter of Cell::setValueExplicit, is currently optional. Omitting it is deprecated, and it will be required in a future relea…
INFO function. PR #4709BAHTTEXT function. PR #4715This release should be usable with Php8.5 Release Candidates without deprecation messages.
__wakeup with __unserialize, and eliminate the other. PR #4639Remove deprecated imagedestroy call. PR #4625
Deletion of items deprecated in Release 4. See "removed" below.
$reader->setAllowExternalImages(true). We do not believe that loading of external images is a widely used feature.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
VSTACK and HSTACK. Issue #4485 PR #4492
Regression in Date::stringToExcel. Issue #4488 PR #4489
Xml Reader recognize indents. Issue #4448 PR #4449
Add ability to add custom functions to Calculation. PR #4390
Support Justify Last Line. Issue #4374 PR #4373
Deletion of items deprecated in Release 3. See "removed" below.
setTestAutoDetect(true), and it will not be possible at all with Php9+. Issue #4092 PR #4340setBetterBoolean(false). PR #4340forceFullCalc. This affects writes with preCalculateFormulas set to false. Prior behavior can be explicitly enabled via setForceFullCalc(null).PR #4340Fixed Security patches.
Fixed Security patches.
Php 8.6 deprecation in Mpdf. Backport of PR #4878
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Methods to get style for row or column. PR #4317
CHOOSECOLS, CHOOSEROWS, DROP, TAKE, and EXPAND. PR #4286
Drawing::setIsUrl is unneeded. The property is set when setPath determines whether path is a url.
Html Reader/Writer Better Handling of Booleans. PR #4257
Settings::libXmlLoaderOptions is ignored. PR #4233
<s> tag when converting HTML to RichText. Issue #4223 PR #4224Worksheet::getProtectedCells was deprecated in release 2, but was not properly documented, and not removed in release 3. Use getProtectedCellRanges in…
The following items were deprecated in release 2 and are now removed.
Security patches will continue to be applied to this branch until 2027-02-28. At that date, no further changes, including security patches, will be ap
Security patches will continue to be applied to this branch
until 2027-02-28. At that date, no further changes,
including security patches, will be applied.
You are encouraged to upgrade to the master branch (release 5)
before that date.
Fixed Security patches.
Php 8.6 deprecation in Mpdf. Backport of PR #4878
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Html Reader Preserve Unicode Whitespace. Issue #1284 PR #4106
Prevent XXE when loading files PR #4119
Xlsx Reader Optionally Ignore Rows With No Cells. Issue #3982 PR #4035
Your coding agent can read these notes before it upgrades. Set up the MCP server →