Tabulka
Exporty tabulky
Wire Table umí exportovat aktuální dotaz tabulky jako CSV, Excel nebo PDF. Exporty používají aktuální hledání, filtry, řazení a viditelné sloupce.
Na této stránce
Wire Table umí exportovat aktuální dotaz tabulky jako CSV, Excel nebo PDF. Exporty používají aktuální hledání, filtry, řazení a viditelné sloupce.
Základní tlačítka exportu
Přidejte tlačítka nebo položky menu, které volají exportTable() z Livewire komponenty používající WithTable.
<button type="button" wire:click="exportTable('csv')"> Export CSV</button> <button type="button" wire:click="exportTable('xlsx')"> Export Excel</button> <button type="button" wire:click="exportTable('pdf')"> Export PDF</button>
Podporované hodnoty formátu:
| Hodnota | Typ souboru |
|---|---|
csv |
CSV |
xlsx |
Excel |
pdf |
Konfigurace výchozích hodnot exportu
Použijte ExportAction v headerActions(), když chcete definovat konfiguraci exportu v definici tabulky.
use NyonCode\WireTable\Export\ExportAction;use NyonCode\WireTable\Export\ExportFormat;use NyonCode\WireTable\Export\TableExport; public function table(Table $table): Table{ return $table ->model(User::class) ->columns([ TextColumn::make('name')->label('Name')->searchable()->sortable(), TextColumn::make('email')->label('Email')->searchable(), TextColumn::make('role')->label('Role'), ]) ->headerActions([ ExportAction::makeExport() ->formats([ExportFormat::Csv, ExportFormat::Excel]) ->exportConfig( TableExport::make() ->fileName('users') ->delimiter(';') ->withHeadings() ), ]);}
Stahování stále probíhá přes exportTable('csv'), exportTable('xlsx') nebo exportTable('pdf'). První ExportAction na tabulce poskytuje výchozí nastavení exportu.
Exportované sloupce
Ve výchozím stavu exporty zahrnují sloupce tabulky viditelné aktuálnímu uživateli. Sloupce skryté uživatelem se přeskočí.
Pro export vlastní sady sloupců:
TableExport::make() ->columns([ TextColumn::make('name')->label('Name'), TextColumn::make('email')->label('Email'), ]);
Popisky sloupců se použijí jako hlavičky, když jsou hlavičky zapnuté.
Exportovaný dotaz
exportTable() vychází z aktuálního filtrovaného a seřazeného dotazu tabulky, bez stránkování.
Pro přidání omezení jen pro export:
TableExport::make() ->fileName('active-users') ->modifyQueryUsing(fn ($query) => $query->where('active', true));
Pro export úplně samostatného dotazu použijte TableExport přímo:
return TableExport::make() ->fileName('inactive-users') ->query(User::query()->where('active', false)) ->columns([ TextColumn::make('name'), TextColumn::make('email'), ]) ->download();
Exportované souhrny
Sloupce se souhrny v rozsahu query připojí své součty za datové
řádky — stejné celkové součty, jaké patička zobrazuje pro celou filtrovanou
sadu, v každém formátu (CSV, Excel, PDF). Buňky se vykreslí jako Label: hodnota
ve sloupci, kam patří; sloupec s několika souhrny vyprodukuje několik řádků:
Number,TotalORD-1,100ORD-2,250,"Grand total: 350 Kč","Average: 175 Kč"
Souhrny v rozsahu page/selection popisují přechodný stav UI a nikdy se
neexportují. Pro export holých dat bez součtů:
TableExport::make() ->withSummaries(false);
Rollup sloupce (->sums(), ->counts(), …) exportují své hodnoty per řádek
i celkové součty. Při exportu vlastního dotazu s rollup sloupci musí dotaz
obsahovat odpovídající withSum/withCount — stejný požadavek jako u samotné
tabulky. Celkové součty podřádků a mezisoučty skupin jsou jen
v patičce a do exportů se nezahrnují.
Volby CSV
TableExport::make() ->fileName('users') ->delimiter(';') ->enclosure('"') ->withHeadings();
Pro odstranění řádku hlaviček:
TableExport::make() ->withHeadings(false);
Excel export
Excel export používá formát xlsx.
<button type="button" wire:click="exportTable('xlsx')"> Export Excel</button>
Nainstalujte OpenSpout, když vaše aplikace potřebuje skutečné XLSX soubory:
composer require openspout/openspout
Pokud OpenSpout není nainstalován, Wire spadne zpět na CSV výstup.
PDF export
PDF export používá formát pdf.
TableExport::make() ->fileName('users') ->orientation('landscape') ->paperSize('A4') ->pdfView('exports.users');
Nainstalujte Laravel DomPDF, když vaše aplikace potřebuje PDF soubory:
composer require barryvdh/laravel-dompdf
Pokud DomPDF není nainstalován, Wire spadne zpět na CSV výstup.
Data PDF pohledu
Při použití vlastního PDF pohledu ho navrhněte jako běžnou Blade export šablonu. Exportér předá pohledu headings, rows, columns a summaryRows (předformátované řádky součtů, prázdné když jsou souhrny vypnuté).
{{-- resources/views/exports/users.blade.php --}}<table> @if (! empty($headings)) <thead> <tr> @foreach ($headings as $heading) <th>{{ $heading }}</th> @endforeach </tr> </thead> @endif <tbody> @foreach ($rows as $row) <tr> @foreach ($row as $value) <td>{{ $value }}</td> @endforeach </tr> @endforeach </tbody> @if (! empty($summaryRows)) <tfoot> @foreach ($summaryRows as $summaryRow) <tr> @foreach ($summaryRow as $value) <td>{{ $value }}</td> @endforeach </tr> @endforeach </tfoot> @endif</table>
Související dokumentace
| Dokument | Co pokrývá |
|---|---|
| Přehled tabulek | Nastavení a stav tabulky |
| Sloupce | Popisky sloupců, viditelnost a formátování |
| Filtry | Filtrované dotazy použité exportem |
| Souhrny | Součty připojené k exportům |
| Autorizace | Omezení akcí exportu podle uživatele |