Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Filament Excel Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

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.

  • Maturity: v1.0.0 is the first tagged release. There is no track record of upgrade behavior, no deprecation history, and no evidence yet of a stable public API. Treat the API as provisional regardless of the 1.0.0 label.
  • Generation model: exports are produced synchronously in the request. Large tables will hit 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.
  • Data exposure: an export action is a data-egress path. Row-level scoping depends on the underlying Filament query and policies being correctly configured; a header action on a broadly-scoped table can silently widen access beyond what the UI showed.
  • Output fidelity: formatting, formulas, merged cells, and relation/nested columns are typically the weak points of table-to-spreadsheet mapping. Expect divergence between on-screen table and exported file, and plan to validate.
  • Upgrade coupling: the package tracks Filament's internal APIs, which move between majors. A Filament major upgrade is a likely breaking event for this package, and the two upgrade calendars must be coordinated.

Key questions.

  1. Which Filament major versions and PHP/Laravel ranges does 1.0.0 constrain, and is there a published compatibility matrix?
  2. What is the transitive footprint — does it require maatwebsite/excel, phpoffice/phpspreadsheet, or both, and do those conflict with anything already installed?
  3. Is export generation synchronous only, or is there a queue/chunk path (explicit or configurable)?
  4. Does the export honor the table's modified query state and Filament authorization, or does it re-query the resource?
  5. Who maintains the package — single maintainer or organization — and what is the issue/PR responsiveness and release cadence?
  6. What is the licensing and support posture, and is a vendor fork viable if maintenance lapses?
  7. Are there documented mitigations for spreadsheet formula injection (=, +, -, @ prefixes) in exported cells?

Integration Approach

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:

  • Greenfield (no existing export): lowest-risk path. Install, declare a single export on a low-sensitivity internal resource, and compare output cell-by-cell against the on-screen table.
  • Replacement (existing bespoke exporters or raw Laravel Excel usage): do not rip out the incumbent. Run both in parallel on the same resource, diff the outputs, then retire the custom exporter only after a full reporting cycle. Column definitions that encode business rules are the part most likely to be lost in translation.

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.

  1. Compatibility spike (½–1 day): install in a scratch branch, confirm resolution and a hello-world export.
  2. Pilot (1 sprint): one internal, non-customer-facing resource, ideally with modest row counts and no PII. Exercise formatting, dates/numerics, relations.
  3. Access review: confirm export honors the same scoping and policies as the table view; add explicit authorization if not.
  4. Load characterization: export at 1k / 10k / 50k rows to find the practical ceiling; record it as a documented row cap.
  5. Controlled rollout: 2–3 resources owned by teams who will actually consume the files, plus a feedback loop on output fidelity.
  6. Decide on incumbent retirement and on whether large exports need a queued path (which likely means building it, not adopting it).

Operational Impact

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.

  • Memory exhaustion or gateway timeout on large exports — manifests as a 500 or blank file, often only discovered by the user.
  • Dependency conflicts on install or on a Filament/PHP upgrade — blocks deployment, not runtime.
  • Silent column drift: a resource gains or renames a column and the export changes shape, breaking downstream spreadsheet consumers and pivot formulas.
  • Authorization gap between table view and export, producing over-broad data egress.
  • Formatting divergence (dates, decimals, leading-zero identifiers, long numeric IDs rendered in scientific notation) that corrupts data downstream.
  • Formula injection in exported cells sourced from user input — a genuine security concern for any export feature and worth an explicit control.
  • Export files emailed or stored outside governed channels, creating an unmanaged copy of record data.

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.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource