Viewing file: ClientsExport.php (2.04 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Exports;
use App\Models\Client;
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 ClientsExport implements FromArray, WithHeadings, ShouldAutoSize, WithEvents
{
/**
* @return \Illuminate\Support\Collection
*/
function array(): array
{
$clients = Client::where('deleted_at', '=', null)->orderBy('id', 'DESC')->get();
if ($clients->isNotEmpty()) {
foreach ($clients as $client) {
$item['code'] = $client->code;
$item['name'] = $client->name;
$item['email'] = $client->email;
$item['phone'] = $client->phone;
$item['adresse'] = substr($client->adresse, 0, 20);
$data[] = $item;
}
} 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',
'Email',
'Phone',
'Adresse',
];
}
}
|