asgoodasnu/spreadsheet-excel-writer
A Laravel/PHP package for generating Excel spreadsheets through a simple, expressive API. Create .xlsx exports from arrays or application data for reports and downloads, with less boilerplate and readable, maintainable export code.
Spreadsheet_Excel_Writer, a lineage that continues as PHPExcel → PhpSpreadsheet. Adopting it means choosing to maintain a fork of a superseded writer rather than standardizing on the maintained successor..xls compatibility only. It emits BIFF8 .xls, not .xlsx. That constrains it to backward-compatibility scenarios — downstream systems or older Excel installs that genuinely cannot consume .xlsx. It does not support streaming, charts, or modern Excel features..xls is a real customer requirement or an inherited assumption. Answering that determines whether an export feature is a one-sprint swap to PhpSpreadsheet or a multi-release migration with consumer coordination.Consider it only when all of the following hold:
.xls output that real users or downstream systems actively consume..xls is a hard requirement, verified with the actual consumer — not assumed from an old ticket..xlsx, no charts, no formula-heavy workbooks, no large-file streaming.Look elsewhere in essentially every other case:
maatwebsite/excel) if Laravel-adjacent. Migration is conceptually a writer-API swap plus regression testing of existing exports..xlsx, .ods, .csv, or .pdf → PhpSpreadsheet or a reporting service..xls generation is memory- and CPU-intensive and becomes an availability risk under load.To executives: This is a zero-signal library wrapping deprecated technology to produce legacy .xls files. Recommendation: do not adopt for new work. It is not a strategic capability — it is maintenance overhead we would own indefinitely, including PHP compatibility and bug fixes. If it already exists in our stack, fund a small, scoped modernization item to move to PhpSpreadsheet (the actively maintained PHP standard) rather than expanding investment. The one question worth an answer up front: do any customers or systems require .xls, or is that an inherited assumption? That answer sets the size of the migration.
To engineering: It's a Symfony binding around PEAR Spreadsheet_Excel_Writer — the direct ancestor of PHPExcel/PhpSpreadsheet. .xls/BIFF8 only, no .xlsx, no streaming, no modern feature set, no ecosystem (Score 0, 0 stars, 0 dependents). Despite the description's "Laravel-friendly" claim, do not expect Laravel auto-discovery or idiomatic container wiring; plan on manual binding and a thin adapter. Target state is PhpSpreadsheet, or Laravel Excel on top of it. Sequence it: (1) time-boxed spike on the target PHP/Laravel matrix; (2) wrap behind an internal SpreadsheetExporter contract; (3) validate output against real consumers and templates; (4) feature-flag the legacy path; (5) build a parallel PhpSpreadsheet implementation; (6) compare outputs, migrate consumers, decommission. If the spike fails on current PHP, stop and choose an alternative immediately.
To product owners: If a stakeholder asks for "Excel export," the answer is yes — via PhpSpreadsheet or Laravel Excel, not this package. Same user-facing capability, better long-term support, no lock-in to an obsolete binary format. The only thing this package buys us is legacy .xls output; if nobody actually needs .xls, we should not pay for it.
How can I help you explore Laravel packages today?