96 votes

Définir la couleur de la cellule d'arrière-plan dans PHPExcel

Comment définir une couleur spécifique à la cellule active lors de la création d'un document XLS dans PHPExcel ?

0 votes

J'y arrive avec la solution de Muntashir Akon. Voir ci-dessous avec 33 votes (en ce moment).

156voto

user198003 Points 2777
$sheet->getStyle('A1')->applyFromArray(
    array(
        'fill' => array(
            'type' => PHPExcel_Style_Fill::FILL_SOLID,
            'color' => array('rgb' => 'FF0000')
        )
    )
);

Fuente: http://bayu.freelancer.web.id/2010/07/16/phpexcel-advanced-read-write-excel-made-simple/

5 votes

Cette syntaxe était incorrecte en date du 2013-10-17. J'ai édité pour refléter la syntaxe correcte.

0 votes

Comment définir la couleur de fond dans la bibliothèque Excel Laravel ?

84voto

Limitless isa Points 270
function cellColor($cells,$color){
    global $objPHPExcel;

    $objPHPExcel->getActiveSheet()->getStyle($cells)->getFill()->applyFromArray(array(
        'type' => PHPExcel_Style_Fill::FILL_SOLID,
        'startcolor' => array(
             'rgb' => $color
        )
    ));
}

cellColor('B5', 'F28A8C');
cellColor('G5', 'F28A8C');
cellColor('A7:I7', 'F28A8C');
cellColor('A17:I17', 'F28A8C');
cellColor('A30:Z30', 'F28A8C');

enter image description here

6 votes

Vos fonctions sont correctes, mais vous utilisez global, et c'est une vraie erreur... Vous devriez utiliser les fonctionnalités de PHP5. A la place, vous pourriez essayer une fonction lambda telle que eval.in/39136 :)

11voto

jocull Points 3718

Il semble qu'il y ait un bug avec applyFromArray en ce moment qui n'accepte pas la couleur, mais ça a marché pour moi :

$objPHPExcel
    ->getActiveSheet()
    ->getStyle('A1')
    ->getFill()
    ->getStartColor()
    ->setRGB('FF0000');

1 votes

Bien que cette solution soit plus élégante (car je préfère la méthode OOP), elle n'a pas fonctionné pour moi :/ J'ai utilisé la solution fournie par @user198003.

11voto

Ça court toujours !

$sheet->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setRGB('FF0000');

2 votes

Dans certaines versions de php, il n'est pas possible d'interrompre la ligne de l'attribut class. Ancienne version.

3 votes

IMPORTANT ! Que $objPHPExcel comme $sheet est une définition de la classe d'objet PHPExcel. Vous devez l'utiliser comme vous l'avez instancié (à la définition de new PHPExcel()).

1 votes

$objPHPExcel->getActiveSheet()->getStyle('A'.$row.':G'.$row)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB('FF0000') ;

1voto

Abhishek Jaiswal Points 637
$objPHPExcel
    ->getActiveSheet()
    ->getStyle('A1')
    ->getFill()
    ->getStartColor()
    ->getRGB();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X