Полное руководство по экспорту файлов PDF и Excel с таблицами Yajra в Laravel

В Laravel Yajra Tables — это мощный пакет, обеспечивающий удобный способ отображения таблиц данных и управления ими. Одной из его ключевых особенностей является возможность экспорта таблиц данных в различные форматы, такие как PDF и Excel. В этой статье мы рассмотрим различные методы экспорта файлов PDF и Excel с использованием таблиц Yajra в Laravel, а также приведем примеры кода.

Метод 1: экспорт файлов PDF
Чтобы экспортировать таблицу данных в файл PDF с помощью таблиц Yajra в Laravel, вы можете выполнить следующие действия:

Шаг 1. Установите пакет Yajra DataTables
Сначала вам необходимо установить пакет Yajra DataTables, выполнив следующую команду:

composer require yajra/laravel-datatables-oracle

Шаг 2. Создайте маршрут
Создайте маршрут в файле web.phpдля обработки запроса на экспорт PDF:

Route::get('export-pdf', 'ExportController@exportPdf')->name('export.pdf');

Шаг 3. Создайте контроллер
Создайте новый контроллер под названием ExportController, используя следующую команду:

php artisan make:controller ExportController

Шаг 4. Определите метод ExportPdf()
Внутри ExportControllerопределите метод exportPdf():

use PDF;
use App\Http\Controllers\Controller;
class ExportController extends Controller
{
    public function exportPdf()
    {
        $data = YourModel::all();
        $pdf = PDF::loadView('pdf.export', compact('data'));
        return $pdf->download('export.pdf');
    }
}

Шаг 5. Создайте представление колонки
Создайте представление колонки под названием export.blade.phpвнутри каталога resources/views/pdf:

<!DOCTYPE html>
<html>
<head>
    <title>PDF Export</title>
</head>
<body>
    <table>
        <thead>
            <tr>
                <th>Column 1</th>
                <th>Column 2</th>
                <!-- Add more columns as needed -->
            </tr>
        </thead>
        <tbody>
            @foreach ($data as $item)
                <tr>
                    <td>{{ $item->column1 }}</td>
                    <td>{{ $item->column2 }}</td>
                    <!-- Add more columns as needed -->
                </tr>
            @endforeach
        </tbody>
    </table>
</body>
</html>

Метод 2: экспорт файлов Excel
Чтобы экспортировать таблицу данных в файл Excel с помощью таблиц Yajra в Laravel, вы можете использовать пакет Maatwebsite\Excel. Выполните следующие действия:

Шаг 1. Установите пакет Maatwebsite\Excel
Выполните следующую команду, чтобы установить пакет:

composer require maatwebsite/excel

Шаг 2. Создайте маршрут
Создайте маршрут в файле web.phpдля обработки запроса на экспорт Excel:

Route::get('export-excel', 'ExportController@exportExcel')->name('export.excel');

Шаг 3. Определите метод ExportExcel()
Внутри ExportControllerопределите метод exportExcel():

use Maatwebsite\Excel\Facades\Excel;
class ExportController extends Controller
{
    public function exportExcel()
    {
        return Excel::download(new YourExport(), 'export.xlsx');
    }
}

Шаг 4. Создайте класс экспорта
Создайте новый класс экспорта с помощью следующей команды:

php artisan make:export YourExport --model=YourModel

Шаг 5. Определите метод экспорта() в классе экспорта.
Внутри класса YourExportопределите метод export(), чтобы указать столбцы, которые нужно экспортировать:

use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\Exportable;
class YourExport implements FromQuery
{
    use Exportable;
    public function query()
    {
        return YourModel::query()->select('column1', 'column2');
        // Add more columns as needed
    }
}

В этой статье мы рассмотрели два метода экспорта файлов PDF и Excel с использованием таблиц Yajra в Laravel. Выполнив эти шаги и используя предоставленные примеры кода, вы можете легко экспортировать таблицы данных в форматы PDF и Excel в своем приложении Laravel. Таблицы Yajra и пакет Maatwebsite\Excel делают процесс экспорта данных простым и эффективным, позволяя вам экспортировать ценные данные для ваших пользователей.