Bonjour,

Je vous pose ma question ici au sujet d'un problème de style sur des feuilles de calcul avec Laravel-Excel. Ayant essayé d'appliquer des bordures sur ma feuille de calcul, celles-ci ne s'affichent pas. Je vous envoie mon code afin de savoir si vous sauriez m'aider.

ReservationExport.php

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?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);
            },
        ];
    }
}
ExportExcelController.php

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?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");
    }
}
Quelqu'un saurait-il me dire où se trouve le problème et pourquoi les bordures ne s'affichent pas ? Un grand merci à vous, une bonne journée et désolé si ces codes paraissent brouillon.