Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

bindash's avatar

Styling problems with Laravel Excel

Hello everybody,

I have a little problem when using Laravel Excel. I've tried to put borders on my worksheet but the borders aren't displayed. Could somebody help me to find where is my error ? I give you my code below :

ExportExcelController.php

<?php

namespace App\Http\Controllers;

use App\Event;
use App\Exports\ReservationExport;
use App\Reservation;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Events\AfterSheet;
use Maatwebsite\Excel\Events\BeforeExport;
use Maatwebsite\Excel\Facades\Excel;
use Maatwebsite\Excel\Sheet;
use PhpOffice\PhpSpreadsheet\Spreadsheet;

class ExportExcelController extends Controller
{
    function index()
    {
        $donneesRes = Reservation::all();
        //DB::table('reservations')->join('events', 'event_id', '=', 'events.id')->get();
        return view('listeHoraires')->with('donneesRes', $donneesRes);
    }

    /*public function show(){
        $reservation = new Reservation();
        $event = $reservation->event();
        $horaire = $reservation->horaire();
        $local = $reservation->local();
    }*/

    function excel()
    {
        $sheet = new Spreadsheet();
        $donneesRes = DB::table('reservations')->get()->toArray();
        /*$donneesTab[] = array('N° semaine', 'Date', 'Heure de début', 'Heure de fin', 'Cours', 'Horaire', 'Local');
        $styleArray = [
            'B2:G8',
            [
                'borders' => [
                    'outline' => [
                        'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THICK,
                        'color' => ['argb' => 'FFFF0000'],
                    ],
                ]
            ]
        ];
        $sheet->getStyle('B2:G8')->applyFromArray($styleArray);*/
        foreach($donneesRes as $donnee)
        {
            $donneesTab[] = array(
                'N° semaine'  => $donnee->numero_semaine,
                'Date'   => $donnee->date,
                'Heure de début' => $donnee->heure_debut,
                'Heure de fin' => $donnee->heure_fin,
                'Cours'    => $donnee->Event_id,
                'Horaire' => $donnee->horaire_id,
                'Local'   => $donnee->local_id
            );
        }
        $export = new ReservationExport();
        return Excel::download($export, "horaire.xlsx");
    }
}

ReservationExport.php

<?php

namespace App\Exports;

use App\Reservation;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Events\AfterSheet;

class ReservationExport implements FromCollection, WithHeadings, ShouldAutoSize
{
    /**
    * @return \Illuminate\Support\Collection
    */
    public function collection()
    {
        return Reservation::all();
    }
    public function headings(): array
    {
        return [
            'N° semaine',
            'Date',
            'Heure de début',
            'Heure de fin',
            'Cours',
            'Horaire',
            'Local'
        ];
    }
    public function registerEvents(): array
    {
        return [
                AfterSheet::class    => function(AfterSheet $event) {
                $cellRange = 'A1:I3';
                $event->sheet->getDelegate()->getStyle($cellRange)->getFont()->setSize(14);
            },
        ];
    }
}
0 likes
0 replies

Please or to participate in this conversation.