Формирование EXEL на Laravel

Библиотека: https://laravel-excel.com/

установка:

php -d memory_limit=-1 $(which composer) require maatwebsite/excel

добавить в файл config/app.php для ServiceProvider:

// ...
'providers' => [
    // ...
    /*
     * Package Service Providers...
     */
    Maatwebsite\Excel\ExcelServiceProvider::class,
    // ...
],
// ...

добавить в файл config/app.php для Facade:

// ...
'aliases' => [
    // ...
    'Excel' => Maatwebsite\Excel\Facades\Excel::class,
],
// ...

добавить конфиг:

php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config

после выполнения появится файл config/excel.php

 

Пример перевода массива в EXCEL файл для скачивания

выполнить команду:

php artisan make:export ArrayExport

появится файл app/Exports/ArrayExport.php, его заполнить:

<?php

namespace App\Exports;

use App\Invoice;
use Maatwebsite\Excel\Concerns\FromArray;

class ArrayExport implements FromArray
{
    public function array(): array
    {
        return [
            [1, 2, 3],
            [4, 5, 6]
        ];
    }
}

создать контроллер:

php artisan make:controller ExcelController

открыть файл app/Http/Controllers/ExcelController.php и добавить метод:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Exports\ArrayExport;
use Excel;

class ExcelController extends Controller
{
    public function getArray(Request $request)
    {
        return Excel::download(new ArrayExport, 'array.xlsx');
    }
}

добавить в routes/web.php

// ...
use App/Http/Controllers/ExcelController
// ...
Route::get(
     'get_array',
      [ExcelController::class, 'getArray']
);

по адресу http://example.com/get_array можно будет скачать данный массив в excel