PHP code example of occtherapist / advanced-table-export-for-filament

1. Go to this page and download the library: Download occtherapist/advanced-table-export-for-filament library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

occtherapist / advanced-table-export-for-filament example snippets


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

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

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'),
                ]),
        ]);
}

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

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

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');

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

TableExportHeaderAction::make()
    ->modifyPdfHtml(fn (string $html, array $context): string => $html.'<footer>Okidoki</footer>')
    ->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 = '|');
bash
php artisan vendor:publish --tag=advanced-table-export-for-filament-config
bash
php artisan vendor:publish --tag=advanced-table-export-for-filament-views
bash
php artisan vendor:publish --tag=advanced-table-export-for-filament-views