PackageTrack
Sign in Get early access

avadim/fast-excel-writer

Lightweight and very fast XLSX Excel Spreadsheet Writer in PHP

v6.15.1 1.6M downloads/mo #2723 most downloaded on Packagist aVadim483/fast-excel-writer

What this package is like to depend on

Last release 7 days ago

16 Aug 2026

Release timing varies

gaps range from 8 days to 3 months

Rarely documented

notes for 7 of 99 stable releases

Nothing withdrawn

no release was ever pulled

6 years old

99 releases · first in 2020

17 releases in the last 12 months

see the full history below

Release timeline

99 releases · Aug 2020 to Aug 2026
2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 99
  1. v6.15.1 12 Aug 2026
    Release notes

    Fixed

    • The cell type of a pre-calculated formula result – a text result was written without t="str", so Excel treated it as a number and showed #VALUE!; boolean and error results are now written as t="b"/t="e" too (#139)
    • A formula with a null pre-calculated result (['=A1+B1', null]) – the cell was written empty and the formula was lost; now it is written without a cached value, so Excel calculates it on open
    • Writer prevented garbage collection – it registered [$this, 'removeFiles'] as a shutdown function, which held a global reference to every instance, so the destructor never ran and memory grew in long-running/CLI processes (#138)
    Open source →
    Release notes
    • Fixed a formula with a null pre-calculated result (['=A1+B1', null]) – the whole cell was written empty and the formula was lost
    • Fixed the cell type of pre-calculated formula results – a text result was written without t="str", so Excel treated it as a number and showed #VALUE!; boolean and error results are now written as t="b"/t="e" too, see https://github.com/aVadim483/fast-excel-writer/issues/139
    • Fixed Writer preventing garbage collection – it registered [$this, 'removeFiles'] as a shutdown function, which held a global reference to every instance, so the destructor never ran and memory grew in long-running/CLI processes, see https://github.com/aVadim483/fast-excel-writer/issues/138
    Open source →
  2. v6.15.0 23 Jul 2026
    Release notes

    Added

    • A Style object can be created directly from an options array – new Style($options)
    • New method Excel::getSharedStringsRefCount()

    Fixed

    • Reused DataValidation/Conditional objects – applying one object to several ranges kept only the last range (#137)
    • Sheet::setStateVeryHidden() made the sheet visible instead of very hidden
    • Sheet::writeCell() rejected the last valid row (1048576) and column (XFD)
    • Excel::rangeDimensionRelative() collapsed a range given as two associative points to a single cell
    • A cell value containing invalid UTF-8 was silently dropped (xmlSpecialChars() now uses ENT_SUBSTITUTE)
    • Numbers/dates under a comma LC_NUMERIC locale (e.g. de_DE) on PHP 7.4 produced invalid <v>3,14</v>
    • Style corruption when two workbooks are open in the same process (StyleManager read default-font state from the wrong instance)
    • Duplicate sheet names, and reuse of sheetN.xml after removeSheet() + makeSheet()
    • Missing XML escaping of image names, chart names and hyperlink targets/locations
    • Sheet::writeCells() dropped positional (integer-keyed) cell styles
    • Formulas with escaped quotes "" and national function names containing regex metacharacters
    • Shared strings lost leading/trailing spaces (xml:space="preserve")
    • Area::getOffsetAddress() ignored its offset argument
    • Sheet::skipRow(null) skipped no rows
    • PHP 8.1+ deprecations from strtolower()/htmlspecialchars() on non-string arguments
    • ZipArchive handle was not closed if saving threw an exception

    Security

    • Excel::download() strips CR/LF and quotes from the file name (header injection), sends the correct xlsx MIME type, adds an RFC 5987 filename* and checks headers_sent()
    • Excel::loadImageFile() rejects dangerous stream wrappers (php://, phar://, glob://, zip://, data://, expect://, …)

    Optimized

    • Formula conversion skips the heavy _xlfn/_xlws passes when the formula contains no (
    • sharedStrings.xml is streamed to disk instead of built entirely in memory (much lower peak memory when shared_string is enabled)
    • Sheet::writeRow() hot path

    Changed

    • After removeSheet() + makeSheet(), new worksheet files use a monotonic index and never reuse a previous sheetN.xml
    Open source →
  3. v6.14.0 18 Jul 2026
    Release notes
    • New demos: rich text (demo-14), images & notes (demo-15); errors fixed in other demos, deprecated chart methods replaced
    • Documentation: Russian translation, upgrade guide, ImageStyle and Options pages, rewritten README
    • Optimized Writer::_writeCell()
    • Fixed Charts\Layout::getXMode() and Charts\Layout::getYMode() - fatal TypeError when adding pie/donut charts
    • Fixed RichTextFragment::outXml() - font size set via setSize() was not written
    Open source →
  4. v6.13.2 30 Jun 2026

    Nothing published for this version

  5. v6.13.1 04 Jun 2026

    Nothing published for this version

  6. v6.13.0 27 May 2026
    Release notes

    The behavior of the Sheet::setColFormats(), Sheet::setColStyleArray() and Sheet::setColDataStyleArray() methods has been changed when column numbers were used as keys (it was incorrect)

    Open source →
  7. v6.12.0 15 Feb 2026

    Nothing published for this version

  8. v6.11.0 24 Jan 2026
    Release notes

    upd: numFmts index calculation;
    upd: styles.xml for extra features;
    upd: set style to cells without value;

    Open source →
  9. v6.10.0 10 Jan 2026
    Release notes

    rename Excel::$style to Excel::$styleManager and other updates for extra features

    Open source →
  10. v6.9.0 06 Jan 2026

    Nothing published for this version

  11. v6.8.0 30 Oct 2025

    Nothing published for this version

  12. v6.7.1 05 Oct 2025

    Nothing published for this version

  13. v6.7.0 21 Sep 2025

    Nothing published for this version

  14. v6.6.5 10 Sep 2025

    Nothing published for this version

  15. v6.6.4 08 Sep 2025

    Nothing published for this version

  16. v6.6.3 31 Aug 2025

    Nothing published for this version

  17. v6.6.2 06 Jul 2025

    Nothing published for this version

  18. v6.6.1 24 Jun 2025

    Nothing published for this version

  19. v6.6.0 01 Jun 2025

    Nothing published for this version

  20. v6.5.1 22 Apr 2025

    Nothing published for this version

  21. v6.5.0 20 Apr 2025

    Nothing published for this version

  22. v6.4.1 11 Jan 2025

    Nothing published for this version

  23. v6.4.0 11 Jan 2025

    Nothing published for this version

  24. v6.3.0 02 Jan 2025

    Nothing published for this version

  25. v6.2.0 01 Nov 2024

    Nothing published for this version

  26. v6.1.1 27 Oct 2024

    Nothing published for this version

  27. v6.1.0 11 Oct 2024

    Nothing published for this version

  28. v6.0.0 22 Sep 2024

    Nothing published for this version

  29. v5.8.2 18 Sep 2024

    Nothing published for this version

  30. v5.8.1 13 Aug 2024

    Nothing published for this version

  31. v5.8.0 05 Aug 2024

    Nothing published for this version

  32. v5.7.0 27 Jul 2024

    Nothing published for this version

  33. v5.6.1 23 Jul 2024

    Nothing published for this version

  34. v5.6.0 29 Jun 2024

    Nothing published for this version

  35. v5.5.2 28 Jun 2024

    Nothing published for this version

  36. v5.5.1 28 Jun 2024

    Nothing published for this version

  37. v5.5.0 27 Jun 2024

    Nothing published for this version

  38. v5.4.0 07 Jun 2024

    Nothing published for this version

  39. v5.3.1 19 May 2024

    Nothing published for this version

  40. v5.3.0 19 May 2024

    Nothing published for this version

  41. v5.2.0 12 Apr 2024

    Nothing published for this version

  42. v5.1.2 10 Apr 2024

    Nothing published for this version

  43. v5.1.1 10 Apr 2024

    Nothing published for this version

  44. v5.1.0 16 Mar 2024

    Nothing published for this version

  45. v5.0.0 03 Mar 2024

    Nothing published for this version

  46. v4.11.0 23 Dec 2023

    Nothing published for this version

  47. v4.10.0 20 Dec 2023

    Nothing published for this version

  48. v4.9.0 18 Dec 2023

    Nothing published for this version

  49. v4.8.3 04 Nov 2023

    Nothing published for this version

  50. v4.8.2 03 Nov 2023

    Nothing published for this version

  51. v4.8.1 25 Oct 2023

    Nothing published for this version

  52. v4.8.0 24 Oct 2023

    Nothing published for this version

  53. v4.7.4 08 Oct 2023

    Nothing published for this version

  54. v4.7.3 07 Oct 2023

    Nothing published for this version

  55. v4.7.2 04 Oct 2023

    Nothing published for this version

  56. v4.7.1 28 Sep 2023

    Nothing published for this version

  57. v4.7.0 19 Sep 2023

    Nothing published for this version

  58. v4.6.0 16 Sep 2023

    Nothing published for this version

  59. v4.5.2 11 Sep 2023

    Nothing published for this version

  60. v4.5.1 11 Sep 2023

    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