asignua/filament-xlsx-export
Filament XLSX Export adds fast, customizable Excel (.xlsx) exports to Filament resources and tables. Export filtered or selected records with configurable columns, headers, and formatting, all from a simple admin action.
This is a baseline assessment; no prior evaluation exists. v1.0.1 is a patch release for a Filament table export/streaming package that writes XLSX (and CSV-adjacent) output, with no advertised breaking changes.
Authenticate middleware behavior, rowLoop shape, column state closures, and formatStateUsing/formatted() pipeline.streaming.middleware only needs to start the session. That mirrors Filament’s own route behavior and is directionally correct, but it increases dependency on panel/guard configuration being correct.auth(), Gate checks, and scopes now see the page’s user on the streaming route. In multi-panel or multi-guard applications, wrong panel-to-guard mapping or non-session auth could produce 403s, missing users, or — worse — cross-panel data exposure if scopes are not independently enforced.rowIndex() is file-relative (starts at 1 regardless of table page), and the stdClass $rowLoop passed to state closures is also file-relative. Any custom closure written against page-relative indices will silently change output.boolean() column now reads FALSE for NULL; this is documented, but it is a lossy mapping for compliance/finance exports. Separately, formatted() text is no longer parsed back into a date, which fixes day/month swapping but means formatted dates remain text and are never re-typed.¢, ½, etc. are handled, and Excel-reserved sheet name History becomes History 1. These are good fixes but imply downstream consumers cannot rely on exact filenames or sheet names.auth()?boolean() NULL-to-FALSE behavior configurable, or is the documented behavior the only option?rowLoop/rowIndex() semantics guaranteed as file-relative across future releases, and are closures type-hinted or validated?$rowLoop offsets in state closures, nullable boolean output, date formatting no longer round-tripping through a parser, non-ASCII filenames, reserved sheet names, guest behavior outside panels, and select-column label output. No data migration is indicated, but golden-file/export fixture tests should be re-run because byte-level output can change for these cases.rowIndex(), stdClass $rowLoop, formatStateUsing(), formatted(), boolean(), and SelectColumn.rowLoop shape — across Filament upgrades. Budget for regression checks on each Filament minor release.History → History 1) → downstream importers expecting fixed sheet names break.FALSE → finance/compliance reports can misstate data unless documented and tested.formatted() dates now emitted as text → downstream parsers expecting typed dates must be updated.SelectColumn labels exported → locale or label changes alter file content for machine-readable consumers.How can I help you explore Laravel packages today?