Eléphant du PHP |
451 Messages
15 mai 2007, 22:01
Bon (en m'inspirant de ça :
http://stephaneey.developpez.com/tutoriel/php/phpexcel/), je suis arrivé à écrire dans les cellules A1 et A2 (d'un classeur existant) et à lire le résultat dans A3 qui contient une formule qui fait la somme A1+A2.
J'espère que ça pourra t'aider.
Chez moi, le document excel se trouve dans le répertoire :
C:\WINDOWS\system32\config\systemprofile\Mes documents
je ne sais pas d'où sort ce chemin, pour le trouver, j'ai provoqué une erreur en ajoutant un sous répertoire au fichier de sortie :
define("FILENAME_OUT","www/mon_autre.xls"); //constante: nom du fichier à générer
ça m'a provoqué une erreur qui m'a indiqué le chemin absolu :
C:\WINDOWS\system32\config\systemprofile\Mes documents\www\mon_autre.xls
J'écris dans un autre fichier que le fichier d'entrée car autrement, j'ai une erreur. Mais dans ton cas, il n'est peut être pas nécessaire d'écrire le résultat...
Autrement c'est :
$cell=$sheet->Range qui permet de sélectionner une cellule
$cell->value qui permet d'atteindre la valeur de la cellule sélectionnée.
Bien sûr ça ne marche que sous windows.
Tiens moi au courant...
Je viens de m'appercevoir que si le fichier de sortie existe déjà, le processus semble ne pas se terminer. Mais comme je le disais plus haut, tu n'as peut être pas besoin d'ecrire le fichier excel modifié ?
<?php
define("FILENAME_IN","mon.xls"); //constante: nom du fichier à générer
define("FILENAME_OUT","mon_autre.xls"); //constante: nom du fichier à générer
$excel=new COM("Excel.application"); //Instanciation de l'objet COM
$excel->sheetsinnewworkbook=1;//1 seule feuille de calcul dans le document
// $excel->Workbooks->Add();//Ajout d'un classeur
$excel->Workbooks->open(FILENAME_IN);//Ajout d'un classeur
$book=$excel->Workbooks(1);//$book contient le classeur actif
$sheet=$book->Worksheets(1);//$sheet contient la feuille active
$sheet->Name="Rapport appel des clients";//Attribution d'un nom à la feuille
$cell=$sheet->Range('A'.'1');
$cell->value=12;
$cell=$sheet->Range('A'.'2');
$cell->value=23;
$cell=$sheet->Range('A'.'3');
$result=$cell->value;
echo "<BR>Resultat : ".$result;
echo "<BR>";
$book->saveas(FILENAME_OUT);//Sauvegarde du fichier
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'instance $excel
?>
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum
