rap2hpoutre/fast-excel
Fast Excel import/export for Laravel
v5.15.0
28M downloads/mo
#831 most downloaded on Packagist
rap2hpoutre/fast-excel
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 13 months
Rarely documented
notes for 10 of 71 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
71 releases · first in 2018
9 releases in the last 12 months
see the full history below
Release timeline
69 releases · Apr 2018 to Aug 2026Releases
latest 60 of 71-
v5.15.016 Aug 2026Release notes
Open source →rightToLeft()
XLSX exports can now open as proper right-to-left sheets. Column order, scroll direction and the grid all run right to left, which is what Arabic business documents expect.
(new FastExcel($report))->rightToLeft()->export('report.xlsx');
Multi-sheet exports are covered too: every sheet in a
SheetCollectiongets the setting, not just the first. PassrightToLeft(false)to turn it back off. CSV and ODS ignore it, since neither format has an equivalent.Thanks to @moemadeldin for this one. He opened #420 explaining why
configureWriterUsing()couldn't reach the setting (the sheet doesn't exist yet when that hook runs), then sent #421 with the fix and tests covering both the single-sheet and multi-sheet paths. The issue write-up did half the work.withSheetContext()
importSheets()can now pass the sheet name to your callback, so the same field names can be treated differently depending on which sheet they came from.$sheets = (new FastExcel) ->withSheetContext() ->importSheets('file.xlsx', function ($sheetName, $row) { return $row + ['_sheet' => $sheetName]; });
Requested in #369 by @StarkOne, whose earlier patch shaped the final version.
Full changelog: v5.14.0...v5.15.0
-
v5.14.029 Jul 2026Release notes
Open source →What's Changed
- feat: select import sheet by name (#273) by @elminson in #409 — originally proposed by @ElRochito in #285
- fix: close reader on exception during import (#241) by @elminson in #410
Full Changelog: v5.13.0...v5.14.0
-
v5.13.018 Jul 2026Release notes
Open source →What's Changed
- feat: limit imported rows with limitRows() (#248) by @elminson in #413
- docs: refresh benchmarks (2026 numbers + comparison chart) by @elminson in #415
- bench: measure streaming export/import paths (fix peak-memory reporting) by @elminson in #416
- feat: exclude underscore-prefixed columns from export (#341) by @elminson in #412
Full Changelog: v5.12.0...v5.13.0
-
v5.12.005 Jul 2026Release notes
Open source →What's Changed
- ci: benchmark PRs against base (time + peak memory) by @elminson in #407
- fix(ci): benchmark base run and compare steps were silently failing by @elminson in #408
- perf: stream exports, faster transpose, simplified internals (-87% peak memory) by @elminson in #406
- feat: add importLazy() for memory-efficient streaming imports (#374) by @elminson in #404
Full Changelog: v5.11.0...v5.12.0
-
v5.11.029 Jun 2026Release notes
Open source →What's Changed
- test: cover multi-sheet export with a Traversable per sheet (#252) by @elminson in #402
- feat: style header columns individually (setHeaderColumnStyles) (#367) by @elminson in #403
Full Changelog: v5.10.0...v5.11.0
-
v5.10.029 Jun 2026Release notes
Open source →What's Changed
- ci: exclude tests/ from Codacy analysis by @elminson in #392
- chore: remove dead .travis.yml by @elminson in #393
- Add .gitattributes by @klimov-paul in #253
- chore: modernize .gitattributes export-ignore list by @elminson in #394
- ci: align phpcs.xml with the codebase's concatenation style by @elminson in #396
- Clarify export options by @xwiz in #195
- Handle duplicate and empty header names on import by @elminson in #395
- docs: low-memory streaming imports for large files (#162) by @elminson in #391
- Accept any Traversable as export data by @elminson in #397
- fix: write placeholder row for empty sheets in multi-sheet exports by @dannyyol in #401
- Fail clearly when exporting multiple sheets to a single-sheet format (#244) by @elminson in #398
- Make string vs number export configurable (#193) by @elminson in #400
New Contributors
- @klimov-paul made their first contribution in #253
- @xwiz made their first contribution in #195
Full Changelog: v5.9.0...v5.10.0
-
v5.9.021 Jun 2026Release notes
Open source →What's Changed
- docs: show that export() returns the written file path by @elminson in #390
- docs: add issue templates, PR template, and CONTRIBUTING guide by @elminson in #387
- Feature/configure writer using by @dannyyol in #384
- test: cover Eloquent model export/import (#12) by @elminson in #388
- docs: add security policy (SECURITY.md) by @elminson in #389
- Fix #185: import uploaded / extension-less CSV & ODS files by @elminson in #385
Full Changelog: v5.8.0...v5.9.0
-
v5.8.021 Jun 2026 -
v5.7.024 Mar 2026Nothing published for this version
-
v5.6.018 Feb 2025Nothing published for this version
-
v5.5.003 Jun 2024Nothing published for this version
-
v5.4.006 Mar 2024Nothing published for this version
-
v5.3.001 Sep 2023Nothing published for this version
-
v5.2.013 Mar 2023Nothing published for this version
-
v5.1.109 Feb 2023Nothing published for this version
-
v5.1.002 Feb 2023Nothing published for this version
-
v5.0.009 Dec 2022Nothing published for this version
-
v4.1.021 Jul 2022Nothing published for this version
-
v4.0.013 Jul 2022Release notes
Open source →- Move from box/spout to openspout/openspout v3 | https://github.com/openspout/openspout
- Fix phpunit tests
- Add support to php 8.1
- Integrated with Github Actions
- Add auto dependabot merge
-
v3.2.009 Feb 2022Nothing published for this version
-
v3.1.013 Oct 2021Nothing published for this version
-
v3.0.212 Oct 2021Nothing published for this version
-
v3.0.129 Sep 2021Nothing published for this version
-
v3.0.001 May 2021Release notes
Open source →- add support for PHP 8
- update PHPUnit to 6.4 to 9.5
- update Spout from 2 to 3
- (breaking change) drop support for PHP 7.1
- (breaking change) remove setEndOfLineCharacter support for CSV
-
v2.5.022 Feb 2021Nothing published for this version
-
v2.4.006 Feb 2021Nothing published for this version
-
v2.3.004 Jan 2021Nothing published for this version
-
v2.2.027 Oct 2020Nothing published for this version
-
v2.1.008 Sep 2020Nothing published for this version
-
v2.0.108 Sep 2020Nothing published for this version
-
v2.0.016 Jun 2020Nothing published for this version
-
v1.7.020 Feb 2020Nothing published for this version
-
v1.6.123 Dec 2019Nothing published for this version
-
v1.5.003 Dec 2019Nothing published for this version
-
v1.4.003 Dec 2019Nothing published for this version
-
v1.3.203 Dec 2019Nothing published for this version
-
v1.3.104 Sep 2019Nothing published for this version
-
v1.3.030 Aug 2019Nothing published for this version
-
v1.2.231 May 2019Nothing published for this version
-
v1.2.127 Feb 2019Nothing published for this version
-
v1.2.027 Feb 2019Nothing published for this version
-
v1.1.009 Jan 2019Nothing published for this version
-
v1.0.002 Jan 2019Nothing published for this version
-
v0.12.019 Dec 2018Nothing published for this version
-
v0.11.026 Oct 2018Nothing published for this version
-
v0.10.104 Oct 2018Nothing published for this version
-
v0.10.0no dateNothing published for this version
-
v0.9.005 Sep 2018Nothing published for this version
-
v0.8.005 Sep 2018Nothing published for this version
-
v0.7.028 Aug 2018Nothing published for this version
-
v0.6.010 Jul 2018Nothing published for this version
-
v0.5.010 Jul 2018Nothing published for this version
-
v0.4.006 Jul 2018Nothing published for this version
-
v0.3.228 May 2018Nothing published for this version
-
v0.3.127 May 2018Nothing published for this version
-
v0.3.027 May 2018Nothing published for this version
-
v0.2.221 May 2018Nothing published for this version
-
v0.2.117 May 2018Nothing published for this version
-
v0.2.007 May 2018Nothing published for this version
-
v0.1.311 Apr 2018Nothing published for this version