Générer fichier Excel via l'objet COM en php

Fermé
billypote Messages postés 44 Date d'inscription lundi 21 juillet 2008 Statut Membre Dernière intervention 7 août 2015 - 17 nov. 2008 à 10:26
billypote Messages postés 44 Date d'inscription lundi 21 juillet 2008 Statut Membre Dernière intervention 7 août 2015 - 19 nov. 2008 à 10:49
Bonjour,
je cherche a ouvrir un fichier excel existant, et à le modifier, le tout en php. Pour ça, j'utilise l'objet COM. Voici mon code:
define("FILENAME","C:/web/htdocs/test1/essai_com.xls");

	$excel=new COM("Excel.application");				
	$excel->Workbooks->Open(FILENAME) ;					
	//$excel->Workbooks->fopen(FILENAME,"r+");   J'ai essayé les 2 solutions.


	//$excel->Visible=1;
	$book=$excel->Workbooks(1);								
	$sheet=$book->Worksheets(1);				
	$selcell = $sheet->cells(2,2);						
	$selcell->activate;
	$selcell->value='azerty';

	$book->Save();
	unset($sheet);
	unset($book);
	$excel->Workbooks->Close();
	$excel->Quit();
	unset($excel);


C'est censé ouvrir le fichier essai_com.xls, et ecrire "azerty" dans la cellule (2,2). Mais ce n'est pas le cas xD
Je sais pas trop ou ça bloque, donc si qqn pouvait me donner un coup de main, ça serait plus qu'appreciable ;)

Merci d'avance et bonne journée
A voir également:

1 réponse

billypote Messages postés 44 Date d'inscription lundi 21 juillet 2008 Statut Membre Dernière intervention 7 août 2015 10
19 nov. 2008 à 10:49
Un petit up, c'est tjrs bon de donner la solution.
J'ai reussi a faire fonctionner l'objet COM au final, il suffit d'indiquer le nom du fichier sans l'extension pour la fonction Open, fallait le savoir.
En revanche je bloque sur la boucle qui permet de parcourir toutes les lignes de mon fichier excel pour appliquer ma formule de concatenation a toutes les lignes.
while(! feof(FILENAME)) ne fonctionne pas. Si qqn a une solution, je suis preneur. :)

<?php
define("FILENAME","C:/web/htdocs/test1/test3.xls");
 if (file_exists(FILENAME))
 {
	echo "Le fichier " . FILENAME . " existe";
	
			 
	$excel=new COM("Excel.application");				
	$excel->Workbooks->Open("C:/web/htdocs/test1/test3") ; //Indiquer le nom du fichier sans l'extension		
	
    
	$book=$excel->Workbooks(1);								
	$sheet=$book->Worksheets(1);
	
	
	$i=2;
	while(! feof(FILENAME))
	{
	$i++;
					
	$selcell=$sheet->Range('U'.$i);
	$selcell->value='=CONCATENER("9F";B'.$i.';" ";STXT(F'.$i.';3;3);SI(Q'.$i.'="-";SI((N2="-");STXT(K'.$i.';3;3);STXT(N'.$i.';3;3));STXT(Q'.$i.';3;3));"TGT";"A";"0000";STXT((1000+C'.$i.');2;3))';
	
        }
											
	
																			
	

	$book->Save();
	unset($sheet);
        unset($book);
	$excel->Workbooks->Close();
	$excel->Quit();
	unset($excel); 										
}
else
{
	echo "Le fichier n'existe pas !";
}
?>
1