IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Laravel PHP Discussion :

Style avec Laravel Excel


Sujet :

Laravel PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2020
    Messages : 5
    Par défaut Style avec Laravel Excel
    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.

  2. #2
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2019
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2019
    Messages : 46
    Par défaut
    perso j'utilise ça

    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
     
    /*header*/
    use Excel;
    use PHPExcel_Style_Fill;
    use PHPExcel_Style_Alignment;
    use PHPExcel_Style_Border;
    /*end header*/
     
    .
    .
    .
     
    $name_file = "Interventions_Produits" . date('dmY');
    Excel::create($name_file, function($excel) use ($customer_array){
                $name_file = "Interventions_Produits" . date('dmY');
                $excel->setTitle($name_file);
                $excel->sheet($name_file, function($sheet) use ($customer_array){
                    $sheet->fromArray($customer_array, null, 'A1', false, false);
                     $sheet->getStyle('A1:Y1')->applyFromArray(array(
    				    'fill' => array(
    				        'type'  => PHPExcel_Style_Fill::FILL_SOLID,
    				        'color' => array('rgb' => '6495ed '),
    				        'opacity' => '0.1'
    				    ),
    				    'alignment' =>array(
    				    	'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER),
    				    'font'=>array(
    				        'bold'=>true,
    				        'size'=>12,
    				        'color'=>array(
    				            'rgb'=>'000000'))
    					));
     
                         });
                $excel->getDefaultStyle()
                    ->getAlignment()
                    ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            })->download($fileExt);

Discussions similaires

  1. Réponses: 6
    Dernier message: 20/04/2020, 17h27
  2. petit probleme avec automation Excel
    Par Tempotpo dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 05/08/2005, 08h57
  3. Changer plusieur style avec des IDs différents?
    Par YanK dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/07/2005, 14h33
  4. Feuille de style avec XML (pour expert !)
    Par jer_the_one dans le forum Composants VCL
    Réponses: 8
    Dernier message: 11/08/2004, 08h48
  5. [VB6] Combiner 2 styles avec MSChart
    Par khany dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 29/04/2003, 09h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo