qalainau/filament-univer-sheet
Strengths:
SpreadsheetField, SpreadsheetEntry, SpreadsheetColumn) tailored to CRUD workflows, reducing over-engineering for specific needs.json cast, eliminating custom serialization logic and integrating cleanly with Laravel’s ORM. Avoids bloated database migrations.Gaps:
.xlsx import/export. Requires integration with Maatwebsite/Excel or similar for file-based workflows.Stack Compatibility:
longText or json columns. Compatible with PostgreSQL/MySQL but may need schema adjustments for SQLite.Migration Path:
textarea/json fields with SpreadsheetField in forms. Example:
// Before
Textarea::make('pricing_data')->rows(10),
// After
SpreadsheetField::make('pricing_data')->height('600px'),
SpreadsheetColumn for table previews (low risk), then expand to forms/infolists.Compatibility Risks:
filament-spreadsheet). Audit for namespace collisions.filament:cache). Monitor for stale data.High:
dehydrateStateUsing is misconfigured (package warns against this, but risk remains for teams unfamiliar with Eloquent casts).Medium:
Low:
INDEX-MATCH, SUMIFS)? If yes, prototype first..xlsx import/export a must-have? If so, budget for Maatwebsite/Excel integration.filament:assets for optimization.required, max) on the containing model.longText for large datasets or json for structured data. Example:
$table->json('spreadsheet_data')->nullable();
->whereJsonContains('data->sheets->sheet1->A1', 'value')).Phase 1: Table Previews (Low Risk)
TextColumn with SpreadsheetColumn for compact data visualization.SpreadsheetColumn::make('inventory')
->previewRows(5)
->previewColumns(4),
Phase 2: Form Editors (Medium Risk)
Textarea/RichEditor for tabular data with SpreadsheetField.SpreadsheetField::make('configurations')
->showFormulaBar()
->ribbonType('simple'),
Phase 3: Infolist Displays (Low Risk)
SpreadsheetEntry to read-only views for data auditability.SpreadsheetEntry::make('audit_log')
->height('400px')
->showToolbar(false),
Phase 4: Advanced Features (High Risk)
filament-assets). Use filament:assets after all plugin installations.filament-tables). Monitor for namespace collisions.spatie/laravel-json).filament:test alongside existing test suites.SpreadsheetField to your component structure.trim filters on longText columns).| Step | Task | Dependencies | Risk Level |
|---|---|---|---|
| 1 | Install package | Laravel 11+, Filament 5.x | Low |
| 2 | Publish assets | php artisan filament:assets |
Low |
| 3 | Register plugin | Panel provider | Low |
| 4 | Configure |
How can I help you explore Laravel packages today?