Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Bureautique
Bureautique Forum d'entraide sur la gestion dynamique de documents de bureautique (Word, Excel, OpenOffice...) avec PHP. Avant de poster -> Cours Excel, FAQ OpenXML, FAQ OpenDocument
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/06/2008, 12h05   #1
Futur Membre du Club
 
Inscription : septembre 2005
Messages : 253
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 253
Points : 19
Points : 19
Par défaut couleur de fonds cellule

Salut à tous, je relance mon sujet que j'ai perdu
je n'arrive pas à mettre de la couleur de fonds à une plage de cellule avec write excel
quelqu'un aurait-il le code SVP?

Merci d'avance
fthem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 12h25   #2
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
Voici un exemple que j'utilise et qui fonctionne:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
	//Fond des titres
	$border1 =& $workbook->addformat();
	$border1->set_fg_color('gray');
	$border1->set_align('center');
	$border1->set_border_color('black');
	$border1->set_pattern(0x1);
	$border1->set_top(1);
	$border1->set_bottom(1);
	$border1->set_left(1);
	$border1->set_right(1);
	$border1->set_size(12);
	$border1->set_align('center');
	$border1->set_align('vcenter');
	$border1->set_merge();	
 
	$worksheet->write('A1', "Entete 1" , $border1);
A affiner selon des besoins de mise en page.
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 15h22   #3
Futur Membre du Club
 
Inscription : septembre 2005
Messages : 253
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 253
Points : 19
Points : 19
ok pour colorer le fond d'une cellule, mais, je voudrais colorer le fond d'une plage de cellules de A1 à AE7 par exemple...
fthem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 15h26   #4
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
La je ne sais pas le faire d'une seule commande, j'intègre généralement la coloration de la place en l'intégrant dans ma boucle d'affichage des données.
En pseudo code, celà donne ceci:

Code :
1
2
3
4
5
6
Si ( (ligne>a) et (ligne<E) &&  (colonne>0)&&(colonne<17) ){
  //alors j'utilise le style fond coloré
}SINON
{
  //utilisation du style blanc
}
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 18h16   #5
Futur Membre du Club
 
Inscription : septembre 2005
Messages : 253
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 253
Points : 19
Points : 19
merci pour ta réponse mais je ne suis pas trés bon en syntaxe et là, je pense que je vais avoir du mal
alors qui dit mieux
fthem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 10h15   #6
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 183
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 183
Points : 6 470
Points : 6 470
Personnellement j'utilise l'autre classe Excel : Spreadshhet_Excel_Writer , mais qui est fort proche.

J'aurais fais ceci pour votre souci

Code PHP :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
<?php
$format = $workbook->addFormat(
array(
'FgColor' => 'magenta'));//couleur du fond de cellule
 
 
for ($i = 0; $i < 31; $i++)
{
	for ($j = 0; $j <7; $j++) {
 
 
		$worksheet->write($j,$i,'',$format);
 
	}
 
}
?>
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 14h13   #7
Futur Membre du Club
 
Inscription : septembre 2005
Messages : 253
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 253
Points : 19
Points : 19
C'est bien celle là que je cherchait
Merci beaucoups
par contre j'ai encore 2 ou 3 soucis:
exemple:
dans ma bd php j'ai une variable qui correspond à du texte $texte et je voudrais que dans la cellule excel ou jenvois ce texte il y ait le renvois à la ligne
c'esty possible???
MERCI
fthem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 07h31   #8
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 183
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 183
Points : 6 470
Points : 6 470
Bonjour, il faut du côté de TextWrap, qui définit le retour automatique à la ligne du texte.
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 08h34   #9
Futur Membre du Club
 
Inscription : septembre 2005
Messages : 253
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 253
Points : 19
Points : 19
tu veux dire qu'il faut que lorsque je défini le format de la cellule j'utilise TextWrap????
fthem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 08h55   #10
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 183
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 183
Points : 6 470
Points : 6 470
ben oui...............

Code PHP :
1
2
3
4
5
6
7
8
9
 
# Embedded newlines
$str2  = "For whatever we lose\n(like a you or a me)\n";
$str2 .= "it's always ourselves\nwe find in the sea";
 
 
$format2->settextwrap();
 
$worksheet->write(1, 3, $str2, $format2);
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 09h34   #11
Futur Membre du Club
 
Inscription : septembre 2005
Messages : 253
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 253
Points : 19
Points : 19
Merci j'avais réussi
et si j'abuse un peu
fusionner 5 cellules d'une ligne
fthem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 10h08   #12
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 183
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 183
Points : 6 470
Points : 6 470
Si tu veux il y a une doc officielle , avec pleins d'exemples, dont voici celle pour merge
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 11h17   #13
Futur Membre du Club
 
Inscription : septembre 2005
Messages : 253
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 253
Points : 19
Points : 19
oui merci ça y est je l'ai trouvée
par contre concernant les codes couleurs sommes nous limités ou peut on en avoir d'autre du style jeaune pale extc..
je n'arrive pas à trouver
fthem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 12h33   #14
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 183
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 183
Points : 6 470
Points : 6 470
prends l'onglet standard colors ici
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 14h17   #15
Futur Membre du Club
 
Inscription : septembre 2005
Messages : 253
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 253
Points : 19
Points : 19
Je n'arrive pas à résoudre un gros problème en fait le code me colore une plage de cellules données sauf celles dans lequelles j'ai défini un format individuel
le problème c'est que j'ai dit 'silver' pour la plage de cellules
j'ai dit aussi 'silver' pour le format individuel mais il ne me colore pas la cellule du même gris
fthem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 14h41   #16
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 183
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 183
Points : 6 470
Points : 6 470
monte nous un peu de code
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2008, 08h45   #17
Futur Membre du Club
 
Inscription : septembre 2005
Messages : 253
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 253
Points : 19
Points : 19
Voila un extrait de mon codequi ne marche pas au top
require_once 'Spreadsheet/Excel/Writer.php';
Code :
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
// CREATION FICHIER     
 
	$workbook = new Spreadsheet_Excel_Writer();
	$workbook->send('test.xls');
	$worksheet =$workbook->addWorksheet("FDMexport");
        //$worksheet ->mergeCells(4, 1, 4, 5);
        $worksheet ->mergeCells(5, 1, 5, 5);
        //$worksheet->hidegridLines(); 
 
// Fusion
//$formattitle->setAlign("merge");
 
 
 
        $format1 = $workbook->addFormat(
array(
'FgColor' => 'silver'));//couleur du fond de cellule
 
 
for ($i = 0; $i < 22; $i++)
{
	for ($j = 0; $j <6; $j++) {
 
 
		$worksheet->write($j,$i,'',$format1);
 
	}
 
}
 
$format2 = $workbook->addFormat(
array(
'FgColor' => 'yellow'));//couleur du fond de cellule
 
 
for ($i = 0; $i < 22; $i++)
{
	for ($j = 7; $j <64; $j++) {
 
 
		$worksheet->write($j,$i,'',$format2);
 
	}
 
}
 
        $worksheet->setColumn(0, 3, 30);
 
        //format hauteur ligne
        $worksheet->setRow(1, 20);
        $worksheet->setRow(3, 22);
        $worksheet->setRow(4, 50);
        $worksheet->setRow(5, 50);
        $worksheet->setRow(6, 27);
        $worksheet->setRow(7, 20);
        $worksheet->setRow(8, 20);
        $worksheet->setRow(9, 8);
        $worksheet->setRow(10, 27);
        //format1 écrit en blanc
        $border1 =& $workbook->addformat();  
        $border1->SetColor('white');
        //format2 ecrit en gras bleu taille 12
        $border2 =& $workbook->addformat();
        $border2->SetBold();
        $border2->SetSize(12);
        $border2->SetColor('blue');
 
        //$border2->SetAlign('Center');
        //format3 ecrit en gras taille 12
        $border3 =& $workbook->addformat();
        $border3->SetBold();
        $border3->SetSize(12);
        //format4 écrit en gras
        $border4 =& $workbook->addformat();
        $border4->SetBold();
        $border4->SetTextWrap();
        //format5 écrit en gras violet comic
        $border5 =& $workbook->addformat();
        $border5->SetBold();
        $border5->SetColor('purple');
        $border5->SetSize(12);
        $border5->Setfontfamily('Comic Sans MS');
        //format6 ecrit en gras marron taille 12
        $border6 =& $workbook->addformat();
        $border6->SetColor('brown');
        $border6->SetBold();
        $border6->SetSize(12);
        /*format7 écrit en gras souligné
        $border7 =& $workbook->addformat();
        $border7->SetBold();
        $border7->SetUnderline();*/
 
     //ECRITURE DE LA PAGE
        $worksheet->write(1 ,5 , "Prévue le", $border4);
        $worksheet->write(1 ,6 , "$fr_date", $border2);
        $worksheet->write(0 ,7 , "Date fin", $border1);
        $worksheet->write(0 ,8 , "$Date_fin");
	$worksheet->write(1 ,1 , "$type", $border3);
        $worksheet->write(1 ,2 , "$numero", $border2);        
        $worksheet->write(3 ,0 , "Poste.S:", $border3);
        $worksheet->write(3 ,1 , "$poste_source", $border6);
        $worksheet->write(3 ,3 , "Départ:", $border3);
        $worksheet->write(3 ,4 , "$depart", $border6);
        $worksheet->write(4 ,0 , "NIP:", $border3);
	$worksheet->write(4 ,1 , "$ouvrage - $travaux", $border4);
        $worksheet->write(5 ,0 , "NITST:", $border3);
        $worksheet->write(5 ,1 , "$objet - n°bt TST: $n_bt - Zone RSE: $zone_rse", $border4);
        $worksheet->write(4 ,7 , "Entitée:");
        $worksheet->write(4 ,8 , "$utilisateur");
        $worksheet->write(5 ,7 , "Site:");
        $worksheet->write(5 ,8 , "$site");
 
	$workbook->close();
	$workbook->sendFile();
voila les bugs:
-j'ai bien une plage de cellules en jaune, mais il ne me colore pas celles dans lesquelles j'envoie des données , idem pour l'autre plage de cellules en gris
- quant au retour à la ligne, il ne me le joue que dans la première cellule des 3 fusionnées, moi je voudrais qu'il me fusionne trois cellules et qu'il m'écrive le texte envoyé dans les trois fusionnées en faisant des retour a la ligne .
- et dernier soucis, je reviens sur les codes couleurs je voudrais du jaune pale maiscomment peut-on faire avec le code la palette indiquée ne me donne que des codes HTML???
Merci pour vos réponses si vous avez un peu de temps
fthem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2008, 13h55   #18
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 183
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 183
Points : 6 470
Points : 6 470
Bonjour,

Alors ton problème est simple :

ici tu colores les cellules en 'silver' :

Code PHP :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
$format1 = $workbook->addFormat(
array(
'FgColor' => 'silver'));//couleur du fond de cellule
 
 
for ($i = 0; $i < 22; $i++)
{
	for ($j = 0; $j <6; $j++) {
 
 
		$worksheet->write($j,$i,'',$format1);
 
	}
 
}

et ici tu formate le contenu d'une cellule :
Code PHP :
1
2
3
4
5
6
 
//format6 ecrit en gras marron taille 12
        $border6 =$workbook->addformat();
        $border6->SetColor('brown');
        $border6->SetBold();
        $border6->SetSize(12);

Tu le notes toi même tu formates en gras marron taille 12, ce format remplace celui précédemment appliqué, et tu ne définis donc pas de couleur pour le fond de la cellule , qui reste par défaut, càd blanc.

C'est comme ceci qu'il faut faire :

Code PHP :
1
2
3
4
5
6
7
 
//format6 ecrit en gras marron taille 12
        $border6 =$workbook->addformat();
        $border6->SetFgColor('silver');
        $border6->SetColor('brown');
        $border6->SetBold();
        $border6->SetSize(12);

Tu vois que je fais appel à SetFgColor .

à toi d'appliquer pour le reste.

MaitrePylos
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2008, 14h12   #19
Futur Membre du Club
 
Inscription : septembre 2005
Messages : 253
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 253
Points : 19
Points : 19
Merci, c'est super sympa de te pencher sur mon problème
et concernant mon problème de fusion de cellules avec du texte "à la ligne"???
fthem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2008, 15h48   #20
Futur Membre du Club
 
Inscription : septembre 2005
Messages : 253
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 253
Points : 19
Points : 19
Un autre truc Bizarre, je viens de mettre une couleur de fond à un url, et la surprise, il me met bien la couleure de fond, mais il me fait disparaitre le souligné et la couleur bleu spécifique à un lien,????
fthem est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h21.


 
 
 
 
Partenaires

Hébergement Web