Ecriture dans un fichier excel

Eléphant du PHP | 67 Messages

21 juil. 2008, 15:38

Je souhaite créer un fichier Excel et y insérer des données depuis notre cher PHP.

1.souhaitant pourvoir conserver un certaine mise en forme je me suis tourné vers le format xls plustot que csv et de ce fait (étant sous Windows) j'utilise un objet COM. Est ce le moyen le mieux adapté?

2. J'ai rapidement récupéré un exemple simple:
	define("FILENAME","C:/Donnees/tests.xls");

	 
	if(file_exists(FILENAME))
	{
	        unlink(FILENAME);
	}
	 
	 
	        $excel=new COM("Excel.application");//Instanciation de l'objet COM
	        $excel->sheetsinnewworkbook=1;//Une seule feuille dans le document
	        $excel->Workbooks->Add();//Ajout d'un classeur
	        $book=$excel->Workbooks(1);//$book contient le classeur actif
	        $sheet=$book->Worksheets(1);//$sheet contient la feuille active
	        $sheet->Name="Graphique";//Attribution d'un nom à la feuille
	 
	        $cell=$sheet->Range('A1'); 
	        $cell->value='Personne'; //Titre de mes colonnes
	        $cell=$sheet->Range('B1');
	        $cell->value='Nombre Questions'; //Nombre de questions qu'on a posées
			echo FILENAME;
	        
	 
	for ($i=2;$i<7;$i++)
	{
	        $cell=$sheet->Range('A'.$i);
	        $cell->value='Zéro'.($i-1); // Zéros2 jusquà Zéros6
	        $cell=$sheet->Range('B'.$i);
	        $cell->value=2*$i; // de 4 à 12 questions
	}
	        
	        $test = $book->saveas(FILENAME);//Enregistrement du document
	        echo $test; 
	        unset($sheet);//Libération de $sheet
	        unset($book);//Libération de $book
	        $excel->Workbooks->Close();//Fermeture du classeur
	        $excel->Quit();//On quitte Excel
	        unset($excel);//Libération de l'objet $excel

} 
Malheureusement bien que je n'ai aucune erreur de signalée le fichier n'est meme pas créé
pourtant l'affichage de $test est '1' ce qui est me paraissait pourtant encourageant...

Si vous quelqu'un a une piste pour trouver mon erreur sachant que je suis sous XP/MS Excel 2003/ PHP5