Формирование 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