ticketpark/excel-bundle
Symfony bundle that wraps PHPExcel/PhpSpreadsheet, giving your app services and helpers to import and export Excel workbooks. Configure worksheets, cell styles, and data mappings through Symfony-friendly APIs for generating reports or reading uploaded spreadsheets.
Bottom line: this is a thin Symfony DI wrapper around ticketpark/html-phpexcel, which in turn depends on phpoffice/phpexcel — a library deprecated in 2017 and end-of-lifed at the end of 2019. With 0 stars, 0 dependents, and a score of 0, there is no community validation, no security triage, and no adoption signal. The recommendation is to treat this as a reference pattern rather than a dependency.
Architecture fit: Poor against the stated stack. Despite the "Laravel/PHP" framing in the request, this is a Symfony bundle: its value is service-container registration, config, and autowiring for HtmlPhpExcel. In Laravel those services are irrelevant — you would consume the underlying library directly and the bundle would contribute nothing but a transitive dependency. The bundle's only real architectural contribution is the HTML-table-to-spreadsheet conversion model, and that model is fully reproducible with maintained libraries.
Integration feasibility: The functional premise is sound — many teams already generate report markup for the web or PDF, and reusing that markup as an export source avoids duplicating layout logic. But feasibility is bounded by the dependency chain. PHPExcel does not run on PHP 8.x, has known unpatched issues, and conflicts with any modern package requiring phpoffice/phpspreadsheet. On a current Laravel release (PHP 8.1+), feasibility without forking and rewriting is effectively zero.
Technical risk:
Key questions:
phpoffice/phpspreadsheet's HTML reader, maatwebsite/excel (FromView), or openspout for this use case?Stack fit: Not viable as-is for Laravel. If a Symfony 3.x/PHP 7.x service already exists, the bundle may be an acceptable stopgap inside that legacy boundary — but it should be isolated behind an interface and scheduled for replacement, never introduced into a greenfield service.
Migration path: There is no upgrade path. PHPExcel → PhpSpreadsheet is a breaking API change that the bundle has not absorbed, so "upgrade" means fork the wrapper or reimplement. Cheapest credible route: keep the HTML→spreadsheet contract as an internal interface (ReportExporter::fromHtml(string): StreamedResponse) and swap the implementation to PhpSpreadsheet's HTML reader or maatwebsite/excel FromView. Consumers never learn the vendor changed.
Compatibility: Assume PHP 5.6–7.x and Symfony 2/3 era constraints, pinned PHPExcel. Verify against your actual runtime before any spike — a single composer why-not will settle it faster than reading the README.
Sequencing:
Maintenance: Effectively zero upstream. No releases to track, no issue triage, no PHP 8 support. Every future runtime upgrade becomes an internal project. Budget for a fork-and-own outcome, or avoid that cost entirely by not adopting.
Support: Community-only and, in practice, none. No vendor, no SLA, no security advisories. If an export breaks in production, your team is the sole escalation path — including for the HTML parser and the spreadsheet writer underneath.
Scaling: Weak. HTML DOM parsing plus in-memory workbook construction scales linearly in memory with row count; large exports will exhaust PHP memory limits before they strain CPU. There is no streaming path, so multi-thousand-row reports need a queue plus generous memory_limit tuning, or must be chunked manually. For high-volume or user-triggered exports this becomes a recurring production concern.
Failure modes:
Ramp-up: Low to learn (it is a thin, small-surface wrapper — hours, not days), but the total cost of ownership is high and back-loaded: the learning curve is trivial and the maintenance burden is permanent. The real ramp-up is the later migration, which is cheaper to do now than after the pattern spreads across multiple report features.
Recommendation: Do not adopt. Capture the HTML-to-Excel use case as a requirement, prove it against phpoffice/phpspreadsheet's HTML reader, maatwebsite/excel, or openspout behind an internal exporter interface, and treat this bundle as prior art that validated the approach — nothing more.
How can I help you explore Laravel packages today?