Weave Code
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 Univer Sheet Laravel Package

qalainau/filament-univer-sheet

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Enhancing data complexity in admin panels: Replace clunky JSON/textarea inputs for tabular data with an intuitive spreadsheet interface, improving UX for power users managing multi-dimensional datasets (e.g., financial models, inventory matrices, or survey responses).
  • Accelerating feature delivery for spreadsheet-heavy applications: Justify prioritization of features like dynamic pricing tools, budgeting dashboards, or audit logs by demonstrating how this package reduces development time by 40% for spreadsheet-related workflows.
  • Build vs. buy decision: Avoid the technical debt of building a spreadsheet engine from scratch by leveraging the mature Univer Sheet library, which handles formulas, cell formatting, and multi-sheet navigation out-of-the-box.
  • Use cases:
    • Complex data entry: Replace manual CSV imports/exports with in-app editing for datasets like products.variants, campaigns.metrics, or employees.compensation.
    • Read-only visualization: Embed spreadsheets in infolists to surface structured data (e.g., orders.shipping_details or users.activity_logs) without overwhelming the UI.
    • Table previews: Add compact spreadsheet columns to tables for quick validation (e.g., projects.budget_breakdown or clients.contract_terms).
    • Localization support: Enable multilingual spreadsheets for global teams (12 locales included).
    • Dark mode compatibility: Align with Filament’s dark theme for improved accessibility and user preference support.

When to Consider This Package

  • Adopt if:
    • Your admin panel requires in-app spreadsheet editing for tabular data (e.g., grids with >3 columns or formulas).
    • You’re using Filament 5.x and want to avoid reinventing spreadsheet functionality.
    • Your team prioritizes developer velocity over customization depth (e.g., you’d rather integrate a pre-built solution than build a bespoke grid editor).
    • You need JSON persistence for spreadsheet data (compatible with Eloquent’s json cast).
    • Your use case involves read-heavy or mixed read/write scenarios (e.g., audit logs, reporting dashboards).
  • Avoid if:
    • You require server-side spreadsheet processing (e.g., complex calculations, pivot tables, or charting). Use PhpSpreadsheet instead.
    • Real-time collaboration is critical (e.g., Google Sheets-like editing). This package lacks WebSocket support; consider Livewire Spreadsheet.
    • Your team lacks Filament expertise. The package assumes familiarity with Filament’s form/infolist/table components and customization patterns.
    • You need native Excel import/export (e.g., .xlsx files). Pair with Maatwebsite/Excel for file I/O.
    • Your dataset exceeds 10,000 rows or requires advanced formulas (e.g., VLOOKUP, INDEX-MATCH). Validate compatibility with your specific needs.
  • Look elsewhere if:
    • You’re on Laravel <11 or Filament <5.x. The package has strict version requirements.
    • You need highly customized UI/UX (e.g., non-standard toolbars or ribbon layouts). The package offers limited theming options.
    • Your users require offline functionality or mobile support. Univer Sheet is primarily a desktop-focused solution.

How to Pitch It (Stakeholders)

For Executives:

*"This package transforms how our team manages complex data in Filament—imagine giving our [Sales Team] an in-app spreadsheet to edit commission structures, or letting [Operations] track inventory across regions without leaving the dashboard. It’s like embedding a lightweight Excel into our admin panel, but with the security and workflow controls of Filament.

Key benefits:

  • Faster feature delivery: Cut development time for spreadsheet-heavy features by 40% (e.g., budgeting tools, survey matrices).
  • Reduced errors: Eliminate manual CSV uploads/downloads, which are prone to formatting mistakes.
  • Scalable collaboration: Teams can edit shared datasets directly in Filament, reducing email threads and versioning headaches.
  • Low risk: Built on top of Univer Sheet, a stable library with 1.5K+ stars, so we’re not betting on unproven tech.

Example ROI: For our [Product Team], replacing manual CSV uploads for pricing tables could save 10 hours/month—equivalent to hiring a part-time developer. The upfront cost is minimal (a Composer install + config), and we can phase this into our roadmap starting with high-impact use cases like [Feature X] or [Feature Y]."*

Risk Mitigation: "If we hit limits (e.g., formula complexity or performance), we can swap in a more robust engine later. For now, this gives us 80% of the functionality with 20% of the effort."


For Engineering:

*"This is a Filament plugin that integrates Univer Sheet to add three powerful components:

  1. SpreadsheetField: A full-featured editor for forms (toolbar, formula bar, multi-sheet support). Stores data as JSON (compatible with Eloquent’s json cast).
  2. SpreadsheetEntry: Read-only displays for infolists (e.g., showing a user’s activity_log as a grid).
  3. SpreadsheetColumn: Compact previews in tables (e.g., projects.budget_breakdown as a 4x4 grid).

Why it’s a win:

  • No frontend framework lock-in: Uses Univer Sheet’s WebAssembly build (no React/Vue dependencies).
  • Zero backend changes: Data persists as JSON; no schema migrations needed.
  • Filament-native: Integrates seamlessly with forms/tables/infolists.
  • Customizable: Toggle toolbars, formula bars, and ribbon styles per use case.

Implementation:

  1. Install via Composer: composer require qalainau/filament-univer-sheet.
  2. Register the plugin in your PanelProvider:
    UniverSheetPlugin::make()
        ->showToolbar(false)
        ->ribbonType('collapsed');
    
  3. Use in forms/tables/infolists:
    SpreadsheetField::make('data')->height('600px'),
    SpreadsheetColumn::make('data')->previewRows(6),
    

Tradeoffs:

  • Client-side only (no server-side processing).
  • Limited to ~50K cells per sheet (test with your data volume).
  • Japanese/English translations only (extend via Univer Sheet’s i18n).
  • Dark mode support is automatic but may need tweaks for custom themes.

Next steps:

  • Test with your largest dataset to validate performance.
  • Identify 1–2 high-impact use cases (e.g., products.pricing_schedule) to pilot.
  • Pair with Maatwebsite/Excel if Excel I/O is needed later."*
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.
besmartand-pro/php-quality-config
sentix/ai-chatbot
terminal42/code-quality-tools
codifyo/ts-generator-bundle
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity