moveek/excel-bundle
Moveek Excel Bundle simplifies Excel import and export in Laravel/PHP apps, offering a lightweight wrapper for reading spreadsheets and generating downloadable files. Configure sheets, mappings, and formatting, then integrate exports and imports into controllers or jobs with minimal code.
moveek/excel-bundle is a thin Symfony service-provider wrapper around phpoffice/phpspreadsheet (MIT). The real decision is: adopt PhpSpreadsheet directly, adopt a framework-idiomatic wrapper (maatwebsite/excel for Laravel), or hand-roll CSV/XLSX handling. This package only answers "how do I register PhpSpreadsheet in a Symfony container" — glue most teams write in a service provider themselves.Consider it only if all of the following hold:
Look elsewhere — and by default assume you should — when:
maatwebsite/excel (model-bound import/export, queued and chunked reads, Laravel-native) or phpoffice/phpspreadsheet directly. Do not add a Symfony bundle to a Laravel app.openspout) or chunked, queued imports with row-level validation and error reporting.Decision rule: treat this as not adopt. Standardize on the upstream library (or the framework-idiomatic wrapper), define internal SpreadsheetReader/SpreadsheetWriter interfaces, and write the ~20–50 lines of wiring yourself.
Bottom line: do not add this as a dependency. It is a small, MIT-licensed Symfony bundle that wires up PhpSpreadsheet in a service container. The underlying library is sound and widely used; the bundle is not. No stars, no dependents, one maintainer, no evidence of production adoption — we would be the first real user and would own every bug and every upstream-version break.
The framework mismatch matters more than the quality. We are a Laravel shop; this is a Symfony bundle. Even if it were excellent, integrating it means importing another framework's conventions for a capability Laravel already serves well. The abstraction is likely thin — DI registration plus a config tree — which means we would pay an integration tax for glue we would write ourselves.
What I recommend instead. Adopt phpoffice/phpspreadsheet directly behind an internal interface, or maatwebsite/excel if we want Laravel-native, queue-aware import/export with model binding. Both are established, documented, and have communities that find the bugs before we do. Integration effort is measured in hours, not sprints. If the bundle contains a genuinely useful pattern (config defaults, a response builder, chunked-read iteration), extract the idea in a short spike and reimplement it in our own service provider — MIT licensing makes that clean.
Cost/benefit. The bundle saves us roughly a config file. In exchange we take on an unmaintained dependency, a single point of failure, no security-response path, and a framework-boundary violation — in a domain (untrusted file uploads and XML parsing) that is historically CVE-prone. The trade is clearly negative.
What I would like decided. (1) Confirm we standardize spreadsheet work on PhpSpreadsheet plus Laravel Excel rather than this bundle, with internal reader/writer interfaces as the seam. (2) Set a dependency-approval bar: no package with zero downstream adopters in a critical path without a named internal owner. (3) If any team has already pulled this in, flag it for replacement now, while the surface area is small.
How can I help you explore Laravel packages today?