PackageTrack
Sign in Get early access

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 2026
2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 140
  1. 5.9.0 12 Jul 2026
    Release notes

    Removed

    Added

    Changed

    • Restructure parsing logic in Reader/Xlsx. PR #4830

    Fixed

    Open source →
    Release notes

    Removed

    Added

    Changed

    • Restructure parsing logic in Reader/Xlsx. PR #4830

    Fixed

    Open source →
  2. 5.8.1 12 Jul 2026
    Release notes

    Last version with support for Php 8.1.

    Added

    Changed

    • Restructure parsing logic in Reader/Xlsx. PR #4830

    Fixed

    Open source →
  3. 5.8.0 07 Jun 2026
    Release notes

    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

    • Html Writer handle text colors a bit better. PR #4855
    • Html Writer apply rotation to images. Issue #4875 PR #4877
    • Work around Php8.6 deprecation in mpdf/mpdf. PR #4878
    • Ability to reuse disconnected spreadsheet. PR #4880
    • Allow int parameter for getChartIndex. PR #4896
    Open source →
    Release notes

    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

    • Html Writer handle text colors a bit better. PR #4855
    • Html Writer apply rotation to images. Issue #4875 PR #4877
    • Work around Php8.6 deprecation in mpdf/mpdf. PR #4878
    • Ability to reuse disconnected spreadsheet. PR #4880
    • Allow int parameter for getChartIndex. PR #4896
    Open source →
  4. 5.7.0 20 Apr 2026
    Release notes

    Fixed

    • Security patches.
    Open source →
  5. 5.6.0 10 Apr 2026
    Release notes

    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

    Open source →
  6. 5.5.0 01 Mar 2026
    Release notes

    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

    Open source →
  7. 5.4.0 11 Jan 2026
    Release notes

    Added

    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

    Open source →
  8. 5.3.0 24 Nov 2025
    Release notes

    Added

    • Formal support for Php8.5.
    • Limited Printarea support for Html/Pdf. Issue #3941 PR #4711
    • Implement missing INFO function. PR #4709
    • Implement missing BAHTTEXT function. 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

    Open source →
  9. 5.2.0 26 Oct 2025
    Release notes

    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

    Open source →
  10. 5.1.0 04 Sep 2025
    Release notes

    Added

    Fixed

    Open source →
  11. 5.0.0 10 Aug 2025
    Release notes

    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

    Open source →
  12. 4.5.0 24 Jul 2025
    Release notes

    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

    Open source →
  13. 4.4.0 23 Jun 2025
    Release notes

    Added

    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

    Open source →
  14. 4.3.1 26 May 2025
    Release notes

    Fixed

    Open source →
  15. 4.3.0 26 May 2025
    Release notes

    Added

    Changed

    • Phpstan Level 10.

    Fixed

    Open source →
  16. 4.2.0 17 Apr 2025
    Release notes

    Added

    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

    Open source →
  17. 4.1.0 02 Mar 2025
    Release notes

    Added

    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

    Open source →
  18. 4.0.0 08 Feb 2025
    Release notes

    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 with preCalculateFormulas set to false. Prior behavior can be explicitly enabled via setForceFullCalc(null).PR #4340
    • Deletion of items deprecated in Release 3. See "removed" below.

    Added

    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
    Open source →
  19. 3.10.7 12 Jul 2026
    Release notes

    Fixed

    • Security patches.
    Open source →
  20. 3.10.6 07 Jun 2026
    Release notes

    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

    • Third-party security patches.
    • Php 8.6 deprecation in Mpdf. Backport of PR #4878
    • Ability to reuse disconnected spreadsheet. Backport of PR #4880
    Open source →
  21. 3.10.5 19 Apr 2026

    Nothing published for this version

  22. 3.10.4 10 Apr 2026

    Nothing published for this version

  23. 3.10.3 11 Jan 2026

    Nothing published for this version

  24. 3.10.2 24 Nov 2025

    Nothing published for this version

  25. 3.10.1 01 Sep 2025

    Nothing published for this version

  26. 3.10.0 10 Aug 2025

    Nothing published for this version

  27. 3.9.3 23 Jul 2025

    Nothing published for this version

  28. 3.9.2 23 Jun 2025

    Nothing published for this version

  29. 3.9.1 08 Feb 2025

    Nothing published for this version

  30. 3.9.0 26 Jan 2025
    Release notes

    Added

    • Methods to get style for row or column. PR #4317
    • Method for duplicating worksheet in spreadsheet. PR #4315

    Fixed

    Open source →
  31. 3.8.0 12 Jan 2025
    Release notes

    Added

    • CHOOSECOLS, CHOOSEROWS, DROP, TAKE, and EXPAND. PR #4286

    Fixed

    Open source →
  32. 3.7.0 27 Dec 2024
    Release notes

    Deprecated

    • Drawing::setIsUrl is unneeded. The property is set when setPath determines whether path is a url.

    Fixed

    Open source →
  33. 3.6.0 08 Dec 2024
    Release notes

    Fixed

    Open source →
  34. 3.5.0 22 Nov 2024
    Release notes

    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

    Open source →
  35. 3.4.0 10 Nov 2024
    Release notes

    Security Fix

    • Several security patches.

    Added

    Changed

    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

    Open source →
  36. 3.3.0 29 Sep 2024
    Release notes

    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

    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

    Open source →
  37. 2.4.7 12 Jul 2026
    Release notes

    Fixed

    • Security patches.
    Open source →
  38. 2.4.6 07 Jun 2026
    Release notes

    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

    • Third-party security patches.
    • Php 8.6 deprecation in Mpdf. Backport of PR #4878
    • Ability to reuse disconnected spreadsheet. Backport of PR #4880
    Open source →
  39. 2.4.5 19 Apr 2026

    Nothing published for this version

  40. 2.4.4 10 Apr 2026

    Nothing published for this version

  41. 2.4.3 11 Jan 2026

    Nothing published for this version

  42. 2.4.2 24 Nov 2025

    Nothing published for this version

  43. 2.4.1 01 Sep 2025

    Nothing published for this version

  44. 2.4.0 10 Aug 2025

    Nothing published for this version

  45. 2.3.10 23 Jul 2025

    Nothing published for this version

  46. 2.3.9 23 Jun 2025

    Nothing published for this version

  47. 2.3.8 08 Feb 2025

    Nothing published for this version

  48. 2.3.7 26 Jan 2025

    Nothing published for this version

  49. 2.3.6 12 Jan 2025

    Nothing published for this version

  50. 2.3.5 27 Dec 2024

    Nothing published for this version

  51. 2.3.4 08 Dec 2024

    Nothing published for this version

  52. 2.3.3 22 Nov 2024

    Nothing published for this version

  53. 2.3.2 10 Nov 2024

    Nothing published for this version

  54. 2.3.0 29 Sep 2024

    Nothing published for this version

  55. 2.2.2 08 Aug 2024
    Release notes

    Fixed

    Open source →
  56. 2.2.1 29 Jul 2024
    Release notes

    Security Fix

    • Prevent XXE when loading files PR #4119

    Fixed

    Open source →
  57. 2.2.0 24 Jul 2024
    Release notes

    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

    Open source →
  58. 2.1.18 12 Jul 2026
    Release notes

    Fixed

    • Security patches.
    Open source →
  59. 2.1.17 07 Jun 2026
    Release notes

    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.
    Open source →
  60. 2.1.16 19 Apr 2026

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive