Générer fichier Excel via l'objet COM en php
                    
        
     
             
                    billypote
    
        
    
                    Messages postés
            
                
     
             
            45
        
            
                                    Statut
            Membre
                    
                -
                                     
billypote Messages postés 45 Statut Membre -
        billypote Messages postés 45 Statut Membre -
        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:
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
                
            
                
    
    
    
        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:         
- Générer fichier Excel via l'objet COM en php
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
1 réponse
                        
                    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. :)
    
                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 !";
}
?>
                
                