В этой статье блога мы рассмотрим различные способы загрузки данных из приложения 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. Каждый метод имеет свои преимущества, поэтому выберите тот, который лучше всего соответствует вашим потребностям. Удачного экспорта!