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 !";
}
?>