[RESOLU] Export Excell en php, avec des cellules de couleur

Eléphanteau du PHP | 36 Messages

05 févr. 2025, 17:07

Bonjour à toutes et tous,

je fais un export d'un tableau en excell, et j'aimerais que certaines cellules soient colorées (et pas toutes).
j'y suis presque, mais je n'arrive pas à mettre la couleur dans les cellules que je veux. J'ai cherché et trouvé plusieurs tutos mais je n'arrive pas à les adapter sur mon code.

Voici un bout de code :

Code : Tout sélectionner

$rowstyle = array(); ... ma requête ... ma boucle while { $rowdata[]=$date; if($date<date('Ymd')){ $rowstyle[] = array('fill'=>"#fa5867"); } } ... $writer->writeSheetRow('Sheet1', $rowdata, $rowstyle);
Merci de votre aide,

E.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

06 févr. 2025, 07:37

Si tu utilises bien cette librairie PHP :
https://github.com/mk-j/PHP_XLSXWriter/

Alors vérifie que tu aies bien la dernière version (0.39), et essaye d'exécuter l'exemple fourni pour vérifier si le paramètre fill fonctionne bien :
https://github.com/mk-j/PHP_XLSXWriter/ ... styles.php
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 36 Messages

07 févr. 2025, 11:16

Bonjour @rthur et merci de ton aide,
oui j'utilise bien cette librairie, et l'exemple vers lequel tu m'as envoyé m'a bien aidée.
J'avais oublié de mettre les styles vides pour les lignes que je ne voulais pas colorer.
En clair (pour ceux que ça intéresse) - je voulais colorer une case choisie, et pas la ligne entière ou la colonne :
$rowdata=array();
$rowstyle=array();

$i=5;
$a=0;

while($a<$i){
	
	$rowdata[]=$a;
		if ($a==2){
		$rowstyle[]=['fill'=>'#cff'];
		} else {
		$rowstyle[]='';
		}
	
	$a++;
	
}

$writer->writeSheetRow('Sheet1', $rowdata, $rowstyle);
:)