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/2006, 14h28   #1
Invité de passage
 
Inscription : septembre 2004
Messages : 6
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 6
Points : 1
Points : 1
Par défaut Communication entre PHP et Excel via l'objet COM

Salut !!

http://stephaneey.developpez.com/tutoriel/php/phpexcel/

Voilà, j'ai trouvé ce que je recherchais exactement... seulement ça ne marche pas chez moi.

Notez que j'ai PHP5 et non PHP4 comme dit dans le tuto.

J'ai créé ma base de donnée comme il le fallait... Lorsque je fais appel à la page, il charge charge charge, et finalement n'affiche rien du tout, pas même une erreur.
la fouine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2006, 14h38   #2
Membre chevronné
 
Avatar de Hervé Saladin
 
Développeur Web
Inscription : décembre 2004
Messages : 636
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2004
Messages : 636
Points : 689
Points : 689
Et tu attends quoi de nous au juste ?
Que grâce à nos dons télépathiques et divinatoires on lise dans tes pensées, qu'on devine quel est le code source et qu'est-ce qui bug ?
Bon, je te titille là, mais plus serieusement, si tu te contentes de nous dire "j'ai fait un truc, ça marche pas" on pourras pas beaucoup t'aider.
Essaye de faire un effort stp.
__________________
Ne cliquez pas sur ce lien
Hervé Saladin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2006, 14h47   #3
Invité de passage
 
Inscription : septembre 2004
Messages : 6
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 6
Points : 1
Points : 1
Oui désolé.

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
<? 
define("FILENAME","E:\\localhost\www\testphp\phpexcel.xls");
 
 
	$conn=mysql_connect('localhost','root','eia.,fr$') or die('Problème lors de la connexion à la BD MYSQL');
	mysql_select_db('phpexcel',$conn) or die('Problème lors de la sélection de la BD MYSQL');
	$res=mysql_query("SELECT DATE_APPEL,NOM_CLIENT,XID_CLIENT  FROM APPELS_CLIENTS INNER JOIN CLIENTS ON ID_CLIENT=XID_CLIENT ORDER BY XID_CLIENT,DATE_APPEL") or die('Problème lors de la réception des enregistrements');
 
	if(mysql_num_rows($res)>0){
		if(file_exists(FILENAME)){			
			unlink(FILENAME);
 
		}
 
		$excel=new COM("Excel.application");
		$excel->sheetsinnewworkbook=1;
		$excel->Workbooks->Add();
		$book=$excel->Workbooks(1);
		$sheet=$book->Worksheets(1);
		$sheet->Name="Rapport appel des clients";		
		$j=64;
		$jj=64;
		$client_prec=0;	
		$nombre_ligne=0;
		while($row=mysql_fetch_object($res)){
 
 
			if($client_prec != $row->XID_CLIENT){
 
				$j++;									
				$i=3;					 					
				if($nombre_ligne>0){
					$lignes[]=$nombre_ligne;
					$nombre_ligne=0;
				}
				if($jj==64){
					$cell=$sheet->Range(chr($j).'1');
				}
				else{
					$cell=$sheet->Range(chr($jj).chr($j).'1');
				}
				$cell->value=$row->NOM_CLIENT;				
				$cell->HorizontalAlignment=-4108;
    				$cell->Font->ColorIndex = 41;
 
 
 
			}
 
			$nombre_ligne++;
			if($jj==64){
				$cell=$sheet->Range(chr($j).$i);
			}
			else{
				$cell=$sheet->Range(chr($jj).chr($j).$i);
			}
 
 
			if(chr($j)=='Z'){
				  $jj++;				  
				  $j=64;
			}
 
 
			$cell->value=$row->DATE_APPEL;			
			$cell->NumberFormat="jj/mm/aaaa hh:mm:ss";
			$client_prec=$row->XID_CLIENT;
			$i++;
		}
	}
	else{
		die('Les tables sont vides ou pas de jointure possible');
	}
 
	$lignes[]=$nombre_ligne;
	$sorted=$lignes; //on copie le nombre d'enreg par client dans un autre tableau
	sort($sorted); // on trie cet autre tableau
	$max_val=5+$sorted[count($sorted)-1]; // on récupère le plus grand nombre de record, pour pouvoir aligner les résultat dans Excel 
	$colonne=65;
	$colonne2=64;
 
 
	for($i=0;$i<count($lignes);$i++){
 
 
		if($colonne2>64){
		   $cell=$sheet->Range(chr($colonne2).chr($colonne).$max_val);				
		}
 
		else{
		   $cell=$sheet->Range(chr($colonne).$max_val);			
		}
 
		if(chr($colonne)=='Z'){
			$colonne2++;
			$colonne=64;
 
		}
		$cell->value="Total: ".$lignes[$i];
		$cell->HorizontalAlignment=-4108;
		$cell->Font->ColorIndex=3;
		$colonne++;
	}
 
	$book->saveas(FILENAME);
	unset($sheet);
	unset($book);
	$excel->Workbooks->Close();
	$excel->Quit();
	unset($excel);	
 
 
?>
Voilà mon code. En appelant la page, il devrait m'ouvrir le fichier phpexcel.xls et écrire dedans. Seulement rien ne se passe. Il essaie de charger le fichier phpexcel.php et après 2-3 min il m'affiche une page blanche sans aucune erreur
la fouine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2006, 14h58   #4
Membre chevronné
 
Avatar de Hervé Saladin
 
Développeur Web
Inscription : décembre 2004
Messages : 636
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2004
Messages : 636
Points : 689
Points : 689
Citation:
Envoyé par la fouine
il devrait m'ouvrir le fichier phpexcel.xls et écrire dedans
Oui, mais nul part dans ton script tu ne lui dis d'envoyer le contenu de ce fichier au navigateur client.
Si tu regarde bien, tu comprendras que le fichier est enregistré sur le disque dur du serveur.
Donc, je parie que si tu va voir dans le dossier : E:\\localhost\www\testphp\, tu y trouveras ton fichier phpexcel.xls.
Ce que tu peux faire, à la rigueur, c'est rediriger le navigateur client vers ce fichier une fois le script exécuté :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
 
                //debut du script ....
                // ...
 
                $cell->Font->ColorIndex=3;
		$colonne++;
	}
 
	$book->saveas(FILENAME);
	unset($sheet);
	unset($book);
	$excel->Workbooks->Close();
	$excel->Quit();
	unset($excel);	
 
        header("Location: http://tonsite.com/chemin/phpexcel.xls");
 
 
?>
__________________
Ne cliquez pas sur ce lien
Hervé Saladin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2006, 15h13   #5
Invité de passage
 
Inscription : septembre 2004
Messages : 6
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 6
Points : 1
Points : 1
Oui tu as raison...

Mais le problème c'est qu'il ne me crée pas le fichier sur mon serveur (qui en fait est mon pc...) et même si je le crée, il n'écrit pas dedans.

J'ai rajouté la ligne afin de rediriger la page sur mon fichier xls, mais aucun changement... il doit essayer de faire quelque chose sans y parvenir, mais je ne vois pas quoi...
la fouine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2006, 15h16   #6
Membre chevronné
 
Avatar de Hervé Saladin
 
Développeur Web
Inscription : décembre 2004
Messages : 636
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2004
Messages : 636
Points : 689
Points : 689
j'ai un doute sur ce chemin : "E:\\localhost\www\testphp\phpexcel.xls"
Est-tu sûr de bien avoir un dossier nommé localhost à la racine de ton disque dur E, ou est-ce que tu ne fais pas une confusion en le chemin sur le système de fichiers local et l'url de ton serveur en local ?
__________________
Ne cliquez pas sur ce lien
Hervé Saladin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2006, 15h23   #7
Invité de passage
 
Inscription : septembre 2004
Messages : 6
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 6
Points : 1
Points : 1
E:\localhost\www\testphp

Voilà où se trouve mon fichier xls sur mon disque dur local ... c'est une certitude
la fouine est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h15.


 
 
 
 
Partenaires

Hébergement Web