Viewing file: ProvidersExport.php (2.03 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Exports;
use App\Models\Provider;
use Maatwebsite\Excel\Concerns\FromArray;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Events\AfterSheet;
class ProvidersExport implements FromArray, WithHeadings, ShouldAutoSize, WithEvents
{
/**
* @return \Illuminate\Support\Collection
*/
function array(): array
{
$providers = Provider::where('deleted_at', '=', null)->orderBy('id', 'DESC')->get();
if ($providers->isNotEmpty()) {
foreach ($providers as $provider) {
$aa['code'] = $provider->code;
$aa['name'] = $provider->name;
$aa['phone'] = $provider->phone;
$aa['email'] = $provider->email;
$aa['adresse'] = $provider->adresse;
$data[] = $aa;
}
} else {
$data = [];
}
return $data;
}
public function registerEvents(): array
{
return [
AfterSheet::class => function (AfterSheet $event) {
$cellRange = 'A1:E1'; // All headers
$event->sheet->getDelegate()->getStyle($cellRange)->getFont()->setSize(14);
$styleArray = [
'borders' => [
'outline' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THICK,
'color' => ['argb' => 'FFFF0000'],
],
],
'alignment' => [
'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT,
],
];
},
];
}
public function headings(): array
{
return [
'Code',
'Name',
'Phone',
'Email',
'Adresse',
];
}
}
|