cube-agency/filament-excel
Filament Excel adds Excel import and export to Filament admin panels, letting you download resource tables and import spreadsheet data with configurable columns, queues, and notifications. Simple setup for Laravel and Filament apps.
Architecture fit. Filament Excel is a Filament plugin that layers export-to-spreadsheet capability onto existing Filament resources and tables. Architecturally it is a thin, additive surface: it registers via a panel service provider and exposes header/bulk actions that serialize a table's columns into a workbook. It does not require changes to domain models, persistence, or routing, so it slots into the admin/reporting tier rather than the application core. For a Laravel + Filament stack this is a low-coupling fit; for a non-Filament Laravel app it is not applicable.
Integration feasibility. Composer install, plugin registration in the panel provider, optional config publish, then per-resource action declaration. Realistic effort is hours for a first export on an existing resource, not days. The main unknown is not the package API but the dependency graph: it inherits Filament's and PhpSpreadsheet's version constraints, and those are the likeliest source of install friction.
Technical risk.
memory_limit or max_execution_time before they hit any package-level limit. There is no evidence of queueing or chunked streaming in this release.Key questions.
maatwebsite/excel, phpoffice/phpspreadsheet, or both, and do those conflict with anything already installed?=, +, -, @ prefixes) in exported cells?Stack fit. Targets Laravel with Filament panels, Composer-managed, PHP 8.x. It is a presentation/admin-layer dependency and should be declared as such — it belongs in the admin surface, not in shared domain packages. If the organization ships multiple Filament panels, expect to register and configure per panel.
Migration path. Two starting states:
Compatibility. Build a small explicit matrix before committing: Filament version × PHP version × Laravel version × spreadsheet library version. Verify in a throwaway branch that composer require resolves cleanly against the current lockfile — dependency resolution, not code, is the usual blocker. Confirm the package's Filament constraint matches the version in production, and check whether it coexists with any already-installed spreadsheet library.
Sequencing.
Maintenance. A first-release community package with a small surface area is cheap to hold but carries single-maintainer risk. Pin to an exact version, do not float the constraint, and review each release before adopting — v1.x patch releases may still contain behavior changes given the immaturity. Keep a fork-and-patch contingency; the code footprint is small enough that a fork is realistic.
Support. No SLA. Internal ownership should be assigned explicitly — likely the platform/admin-tooling team — including who triages broken exports and who coordinates Filament upgrades against this dependency. Budget a recurring line item for version-compatibility work keyed to Filament majors, not to this package's own releases.
Scaling. The binding constraint is synchronous in-request workbook generation. Memory grows with row count × column count, and there is no built-in backpressure. Practical mitigations: document and enforce a row cap in the export action, filter before exporting rather than after, and route genuinely large extracts through a separate queued job with the package used only for small/medium interactive exports. Do not assume the package scales to full-table dumps of a large tenant.
Failure modes.
Ramp-up. For a developer already fluent in Filament, adoption is same-day: registration plus column/action declaration is idiomatic. The non-trivial skill is the second-order work — formatting fidelity, access scoping, load characterization, and spreadsheet-consumer ergonomics (stable column order, header conventions, machine-readable sheets). Non-Filament developers get little value from this package, so it should not be treated as a general-purpose export tool. Plan for documentation aimed at the analysts and ops staff who consume the files, not just at the developers who write the actions.
Recommendation. Adopt as a scoped, experimental capability for admin-panel exports under a documented row ceiling with an explicit access review, pinned version, and named internal owner. Do not yet treat it as the organization's export platform, and do not retire existing reporting pipelines on the strength of a v1.0.0 first release.
How can I help you explore Laravel packages today?