Ускорьте свое приложение Laravel: экспорт данных в Excel стал проще

В этой статье блога мы рассмотрим различные способы загрузки данных из приложения Laravel и их экспорта в электронную таблицу Excel. Экспорт Excel обычно используется в веб-приложениях, чтобы предоставить пользователям возможность загружать данные в структурированном и легкодоступном формате. Мы рассмотрим различные подходы с использованием популярных пакетов Laravel, попутно предоставляя примеры кода. Итак, приступим!

Метод 1: Laravel Excel (Maatwebsite)
Laravel Excel, основанный на пакете Maatwebsite, представляет собой мощную и широко используемую библиотеку для экспорта данных в Excel в приложениях Laravel. Он предоставляет простой и интуитивно понятный API для создания файлов Excel.

Для начала вам необходимо установить пакет через Composer:

composer require maatwebsite/excel

Далее вы можете создать класс экспорта Excel с помощью следующей команды:

php artisan make:export UsersExport --model=User

Внутри сгенерированного класса экспорта вы можете определить данные для экспорта:

use Maatwebsite\Excel\Concerns\FromCollection;
use App\Models\User;
class UsersExport implements FromCollection
{
    public function collection()
    {
        return User::all();
    }
}

Чтобы запустить экспорт, вы можете просто вызвать метод download()для экземпляра вашего класса экспорта:

return (new UsersExport)->download('users.xlsx');

Метод 2: Laravel Excel (Spatie)
Еще один популярный пакет для экспорта Excel в Laravel — Laravel Excel от Spatie. Он предлагает аналогичную функциональность, но с немного другой реализацией.

Сначала установите пакет через Composer:

composer require spatie/laravel-excel

Затем создайте класс экспорта, используя предоставленную команду artisan:

php artisan make:export UsersExport --model=User

В классе экспорта определите данные для экспорта:

use Maatwebsite\Excel\Concerns\FromCollection;
use App\Models\User;
class UsersExport implements FromCollection
{
    public function collection()
    {
        return User::all();
    }
}

Чтобы начать загрузку, вы можете использовать метод download()для экземпляра вашего класса экспорта:

return Excel::download(new UsersExport, 'users.xlsx');

Метод 3: экспорт вручную с использованием коллекции Laravel
Если вы предпочитаете более ручной подход, не полагаясь на внешние пакеты, Laravel предоставляет метод collection()для запросов Eloquent, позволяющий легко преобразовать данные в коллекцию Laravel..

Вот пример экспорта пользователей в Excel вручную:

use App\Models\User;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Facades\Excel;
$users = User::all();
$collection = new Collection($users);
Excel::create('users', function ($excel) use ($collection) {
    $excel->sheet('Sheet 1', function ($sheet) use ($collection) {
        $sheet->fromArray($collection);
    });
})->download('xlsx');

Экспорт данных в Excel в приложении Laravel можно осуществить различными способами. В этой статье мы рассмотрели три популярных подхода: использование Laravel Excel с Maatwebsite, Laravel Excel с Spatie и экспорт вручную с использованием Laravel Collection. Каждый метод имеет свои преимущества, поэтому выберите тот, который лучше всего соответствует вашим потребностям. Удачного экспорта!