PHPackages                             occtherapist/advanced-table-export-for-filament - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [PDF &amp; Document Generation](/categories/documents)
4. /
5. occtherapist/advanced-table-export-for-filament

ActiveLibrary[PDF &amp; Document Generation](/categories/documents)

occtherapist/advanced-table-export-for-filament
===============================================

Export and print Filament admin tables to CSV, XLSX, and PDF — Filament v4/v5 compatible successor to filament-export.

v1.0.1(1mo ago)2107MITPHPPHP ^8.2CI passing

Since Jun 19Pushed 3w agoCompare

[ Source](https://github.com/OccTherapist/advanced-table-export-for-filament)[ Packagist](https://packagist.org/packages/occtherapist/advanced-table-export-for-filament)[ Docs](https://github.com/OccTherapist/advanced-table-export-for-filament)[ RSS](/packages/occtherapist-advanced-table-export-for-filament/feed)WikiDiscussions main Synced 2w ago

READMEChangelog (7)Dependencies (15)Versions (10)Used By (0)

Advanced Table Export for Filament
==================================

[](#advanced-table-export-for-filament)

[![Latest Version on Packagist](https://camo.githubusercontent.com/4ad48d06e57e698ac6ff1dd5e35e20b08a9bf610df8f1fe064cf1f0ec08a6b64/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6f63637468657261706973742f616476616e6365642d7461626c652d6578706f72742d666f722d66696c616d656e742e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/occtherapist/advanced-table-export-for-filament)[![Total Downloads](https://camo.githubusercontent.com/2b202c9ddbc6cf64f9ba6392518668b3a0100bd225f2b1f5b3f15ec81a6e61e3/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6f63637468657261706973742f616476616e6365642d7461626c652d6578706f72742d666f722d66696c616d656e742e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/occtherapist/advanced-table-export-for-filament)[![License](https://camo.githubusercontent.com/fe85f3c9446f57c60c231fe6b24358c3a830bbbe5cd7896197c8813c640d9e5f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f4f63635468657261706973742f616476616e6365642d7461626c652d6578706f72742d666f722d66696c616d656e743f7374796c653d666c61742d737175617265)](LICENSE)[![PHP Version](https://camo.githubusercontent.com/fa35f2ed4ff32c0a2b57ed7a22799838636d6990b53a9000966a8aae8f5bea44/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f6f63637468657261706973742f616476616e6365642d7461626c652d6578706f72742d666f722d66696c616d656e742e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/occtherapist/advanced-table-export-for-filament)

   ![Advanced Table Export for Filament — export tables to XLSX, CSV, PDF, JSON, XML, or clipboard](art/banner-light.png)**Export and print Filament admin tables in seconds** — CSV, XLSX, PDF, JSON, XML, and clipboard with column selection, preview, and flexible PDF drivers.

Built for **Filament v4 and v5** on **Laravel 11, 12, and 13**. A modern, actively maintained successor to the export workflow many teams relied on with [`alperenersoy/filament-export`](https://github.com/alperenersoy/filament-export).

---

Why this package?
-----------------

[](#why-this-package)

NeedThis packageExport **filtered, sorted, searched** table data (not just selected rows)Header action exports the current table queryExport **only selected rows**Bulk action for row selection**CSV, XLSX, PDF, JSON, XML, clipboard** from one modal or quick menuModal action or quick ActionGroup**Choose columns** before exportBuilt-in column filter in the export modal**PDF** with portrait or landscapeConfigurable orientation per export**Multiple PDF backends**Sidecar, Browsershot, Dompdf, or null driver**Filament v4/v5** without waiting on upstreamFirst-class support from day one**German &amp; English** UITranslations includedFilament's [native export action](https://filamentphp.com/docs/actions/export) is powerful for queued, notification-based exports with custom exporter classes. This package targets teams that want a **lightweight, modal-based export** directly from the table — similar to `filament-export`, but updated for current Filament APIs.

---

Features
--------

[](#features)

- **Header action** — export the full filtered/sorted table state
- **Bulk action** — export only selected records
- **Quick actions** — ActionGroup with one click per format (no modal)
- **Formats** — CSV, XLSX, PDF, JSON, XML, and copy to clipboard
- **Column picker** — let users choose which columns to include
- **Custom file names** — optional filename input with timestamp prefix
- **PDF orientation** — landscape or portrait
- **Pluggable PDF renderers** — Sidecar Browsershot, local Browsershot, Dompdf
- **Row limits** — configurable caps for PDF and spreadsheet exports
- **Panel plugin** — central limits and defaults per Filament panel
- **i18n** — English and German translations out of the box
- **Preview UI** — paginated preview in the export modal

---

Requirements
------------

[](#requirements)

- PHP 8.2+
- [Filament](https://filamentphp.com/) 4 or 5
- Laravel 11, 12, or 13

**Optional** (pick one PDF stack):

DriverPackages`sidecar``spatie/laravel-pdf`, `wnx/sidecar-browsershot``browsershot``spatie/laravel-pdf`, `spatie/browsershot``dompdf``dompdf/dompdf``null`No PDF dependencies (default)Spreadsheet exports use [OpenSpout](https://github.com/openspout/openspout) (included).

---

Installation
------------

[](#installation)

```
composer require occtherapist/advanced-table-export-for-filament
```

Register the plugin in your panel provider (e.g. `app/Providers/Filament/AdminPanelProvider.php`):

```
use Filament\Panel;
use OccTherapist\AdvancedTableExportForFilament\AdvancedTableExportForFilamentPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            AdvancedTableExportForFilamentPlugin::make()
                ->maxPdfRows(200)
                ->maxExportRows(2000)
                ->previewPerPage(25),
        ]);
}
```

Add the actions to any table:

```
use OccTherapist\AdvancedTableExportForFilament\Actions\TableExportBulkAction;
use OccTherapist\AdvancedTableExportForFilament\Actions\TableExportHeaderAction;
use OccTherapist\AdvancedTableExportForFilament\Actions\TableExportQuickHeaderAction;
use Filament\Tables\Columns\TextColumn;

public function table(Table $table): Table
{
    return $table
        ->headerActions([
            TableExportQuickHeaderAction::make(),
            // or modal-based export:
            // TableExportHeaderAction::make()
        ])
        ->toolbarActions([
            TableExportBulkAction::make()
                ->withColumns([
                    TextColumn::make('internal_notes')->label('Notes'),
                ]),
        ]);
}
```

`TableExportHeaderAction` exports the filtered, sorted, and searched table query. `TableExportBulkAction` exports only the selected rows. Use `withColumns()` to include extra model columns that are not visible in the table.

Publish the config (optional):

```
php artisan vendor:publish --tag=advanced-table-export-for-filament-config
```

Publish Blade views for PDF and preview customization (optional):

```
php artisan vendor:publish --tag=advanced-table-export-for-filament-views
```

This copies templates to `resources/views/vendor/advanced-table-export-for-filament/`. Published views override the package defaults automatically.

Set your PDF driver in `.env`:

```
ADVANCED_TABLE_EXPORT_PDF_RENDERER=sidecar
```

---

Configuration
-------------

[](#configuration)

All options live in `config/advanced-table-export-for-filament.php`:

KeyDefaultDescription`default_format``xlsx`Default export format`default_page_orientation``landscape`PDF orientation`time_format``M_d_Y-H_i`Timestamp suffix for generated filenames`max_pdf_rows``200`Max rows for PDF exports`max_export_rows``2000`Max rows for CSV/XLSX exports`csv_delimiter``,`CSV field delimiter`pdf_renderer``null`PDF driver: `sidecar`, `browsershot`, `dompdf`, `null``disable_preview``false`Hide preview section in modal`disable_filter_columns``false`Hide column picker`disable_file_name``false`Hide filename input`disable_file_name_prefix``false`Disable timestamp prefix on filenames`disable_additional_columns``false`Disable extra column inputs`preview_per_page``25`Preview pagination size (v0.2.0)`action_icon``heroicon-o-arrow-down-on-square`Action button iconPanel-level limits override config when set on the plugin:

```
AdvancedTableExportForFilamentPlugin::make()
    ->maxPdfRows(500)
    ->maxExportRows(10000)
    ->previewPerPage(50);
```

---

PDF rendering
-------------

[](#pdf-rendering)

The package resolves a `PdfRenderer` contract from the container based on `pdf_renderer`:

```
// config/advanced-table-export-for-filament.php
'pdf_renderer' => env('ADVANCED_TABLE_EXPORT_PDF_RENDERER', 'null'),
```

DriverBest for**sidecar**Production on AWS Lambda via [Sidecar Browsershot](https://github.com/wnx/laravel-sidecar-browsershot)**browsershot**Local/dev with Chrome via [Browsershot](https://github.com/spatie/browsershot)**dompdf**Simple HTML-to-PDF without a headless browser**null**Development until PDF export ships in v0.2.0---

Migrating from `filament-export`
--------------------------------

[](#migrating-from-filament-export)

If you used [`alperenersoy/filament-export`](https://github.com/alperenersoy/filament-export) on Filament v2/v3, this package offers a familiar workflow for Filament v4/v5:

```
- use AlperenErsoy\FilamentExport\Actions\FilamentExportHeaderAction;
- use AlperenErsoy\FilamentExport\Actions\FilamentExportBulkAction;
+ use OccTherapist\AdvancedTableExportForFilament\Actions\TableExportHeaderAction;
+ use OccTherapist\AdvancedTableExportForFilament\Actions\TableExportBulkAction;

  ->headerActions([
-     FilamentExportHeaderAction::make('export'),
+     TableExportHeaderAction::make(),
  ])
  ->toolbarActions([
-     FilamentExportBulkAction::make('export'),
+     TableExportBulkAction::make(),
  ])
```

Many `disable*` options from the original package map directly to config keys (see [Configuration](#configuration)) or can be set per action via method chaining (see [Action customization](#action-customization)).

---

Action customization
--------------------

[](#action-customization)

Both modal and quick export actions share a fluent API similar to `filament-export`:

```
use Filament\Tables\Columns\TextColumn;
use OccTherapist\AdvancedTableExportForFilament\Actions\TableExportHeaderAction;
use OccTherapist\AdvancedTableExportForFilament\Enums\ExportFormat;

TableExportHeaderAction::make()
    ->fileName('monthly-report')
    ->timeFormat('Y-m-d')
    ->defaultFormat(ExportFormat::Pdf)
    ->defaultPageOrientation('portrait')
    ->disableCsv()
    ->disablePreview()
    ->directDownload()
    ->withHiddenColumns()
    ->csvDelimiter(';')
    ->withColumns([
        TextColumn::make('internal_notes')->label('Notes'),
    ])
    ->formatStates([
        'status' => fn ($record) => strtoupper((string) $record->status),
    ])
    ->extraViewData([
        'company' => 'Acme GmbH',
    ])
    ->fileNameFieldLabel('Report name')
    ->formatFieldLabel('Export as')
    ->filterColumnsFieldLabel('Included columns');
```

MethodDescription`fileName()`Default file name`timeFormat()`Timestamp format when the file name is generated automatically`formats()`Whitelist enabled export formats`disablePdf()` / `disableXlsx()` / `disableCsv()` / `disableJson()` / `disableXml()` / `disableClipboard()`Hide export formats`clipboardFormat()`Clipboard payload format (`Tsv`, `Csv`, `Json`)`jsonStructure()` / `prettyJson()` / `compactJson()`JSON export structure and formatting`xmlRoot()` / `xmlRowTag()`XML root and row element names`formatIcon()` / `formatLabel()` / `groupLabel()`Quick export presentation`modifyJsonExport()` / `modifyXmlExport()`Customize JSON/XML output before download`defaultFormat()`Default selected format`defaultPageOrientation()`Default PDF orientation`directDownload()`Skip the modal and export immediately with defaults`disableFilterColumns()`Hide the column picker`disableFileName()`Hide the file name input`disableFileNamePrefix()`Disable automatic table-name prefix`disablePreview()`Hide the paginated preview`disableTableColumns()`Export only columns from `withColumns()``withHiddenColumns()`Include toggled-hidden table columns in exports`withColumns()`Add extra model columns to the export`csvDelimiter()`CSV delimiter for this action`formatStates()`Override exported values per column`extraViewData()`Extra variables for PDF/preview Blade views`modifyExportQueryUsing()`Modify the export query before fetching records`modifyPdfHtml()`Modify rendered PDF HTML before conversion (all PDF drivers)`modifyDompdfWriter()`Customize the Dompdf instance when using the `dompdf` driver`modifyXlsxWriter()`Customize the OpenSpout XLSX writer (sheet name, etc.)`modifyCsvWriter()`Customize OpenSpout CSV options (delimiter, BOM) before exportAction-level settings override global config values.

### Writer hooks

[](#writer-hooks)

```
use OpenSpout\Writer\CSV\Options;
use OpenSpout\Writer\XLSX\Writer as XlsxWriter;

TableExportHeaderAction::make()
    ->modifyPdfHtml(fn (string $html, array $context): string => $html.'Okidoki')
    ->modifyDompdfWriter(fn (\Dompdf\Dompdf $dompdf, array $context) => $dompdf->setPaper('A4', 'landscape'))
    ->modifyXlsxWriter(fn (XlsxWriter $writer, array $context) => $writer->getCurrentSheet()->setName('Export'))
    ->modifyCsvWriter(fn (Options $options, array $context) => $options->FIELD_DELIMITER = '|');
```

Each hook receives a `$context` array: `fileName`, `headers`, `rows`, `rowCount`, `format`, and `orientation` (PDF only).

### Custom Blade views

[](#custom-blade-views)

```
php artisan vendor:publish --tag=advanced-table-export-for-filament-views
```

Edit `resources/views/vendor/advanced-table-export-for-filament/pdf/table.blade.php` or `export-preview.blade.php`. Combine with `extraViewData()` to pass custom variables into the templates.

---

Roadmap
-------

[](#roadmap)

VersionFocus**v1.0.0** *(current)*JSON, XML, clipboard, quick export ActionGroups, `formats()` API**v1.1+**End-user additional-columns UI---

Contributing
------------

[](#contributing)

Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for setup and guidelines.

Found a bug or missing feature? [Open an issue](https://github.com/OccTherapist/advanced-table-export-for-filament/issues).

---

Changelog
---------

[](#changelog)

See [CHANGELOG.md](CHANGELOG.md) for release notes.

---

License
-------

[](#license)

MIT © [Igor Clauss](https://igorclauss.de)

---

Author
------

[](#author)

**Igor Clauss** — Laravel &amp; Filament developer

- Website: [igorclauss.de](https://igorclauss.de)
- GitHub: [@OccTherapist](https://github.com/OccTherapist)

Built with care for teams who need reliable table exports in modern Filament panels.

###  Health Score

45

—

FairBetter than 91% of packages

Maintenance95

Actively maintained with recent releases

Popularity17

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Total

7

Last Release

31d ago

Major Versions

v0.4.0 → v1.0.02026-07-03

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/28587659?v=4)[Igor Clauss](/maintainers/OccTherapist)[@OccTherapist](https://github.com/OccTherapist)

---

Top Contributors

[![OccTherapist](https://avatars.githubusercontent.com/u/28587659?v=4)](https://github.com/OccTherapist "OccTherapist (12 commits)")

---

Tags

laravelpdfexportxlsxcsvdompdfprintfilamentfilament-pluginbrowsershotopenspouttable-exportfilament-export

###  Code Quality

TestsPHPUnit

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/occtherapist-advanced-table-export-for-filament/health.svg)

```
[![Health](https://phpackages.com/badges/occtherapist-advanced-table-export-for-filament/health.svg)](https://phpackages.com/packages/occtherapist-advanced-table-export-for-filament)
```

###  Alternatives

[rap2hpoutre/fast-excel

Fast Excel import/export for Laravel

2.3k27.7M53](/packages/rap2hpoutre-fast-excel)[psalm/plugin-laravel

Psalm plugin for Laravel

3355.4M352](/packages/psalm-plugin-laravel)[laravel/ai

The official AI SDK for Laravel.

1.1k4.6M276](/packages/laravel-ai)[moonshine/moonshine

Laravel administration panel

1.3k268.2k86](/packages/moonshine-moonshine)[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3914.8k](/packages/rawilk-profile-filament-plugin)[avadim/fast-excel-laravel

Lightweight and very fast XLSX Excel Spreadsheet Export/Import for Laravel

4263.3k1](/packages/avadim-fast-excel-laravel)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
