[php-Excel] Feuille de Calcul Excel insérée dans un site Web

Mammouth du PHP | 693 Messages

15 mai 2007, 20:26

Il te reste plus qu'à faire les calculs par php (tout calcul que peut faire Excel peut aussi se faire par php, car jusqu'à preuve du contraire, Excel ne fait pas encore de calcul formel...).
Et PHP le fait :shock:

Damned, encore une branche que je n'aurai jamais imaginé...

ViPHP
ViPHP | 5924 Messages

15 mai 2007, 21:35

Il te reste plus qu'à faire les calculs par php (tout calcul que peut faire Excel peut aussi se faire par php, car jusqu'à preuve du contraire, Excel ne fait pas encore de calcul formel...).
Et PHP le fait :shock:

Damned, encore une branche que je n'aurai jamais imaginé...
Non, je ne pense pas, mais il ne fait pas moins qu'Excel en tout cas.
Et puis ca m'étonnerait pas qu'un fou développe un module de calcul formel un de ces jours :)

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 :)

Petit nouveau ! | 7 Messages

16 mai 2007, 09:02

Merci!! :) Je te tiens au courant de mes avancées aussi!

jejecoco
Invité n'ayant pas de compte PHPfrance

21 nov. 2012, 11:22

bonjour, désolé d’interférer dans votre discussion mais j'ai un problème que je n'arrive a résoudre et qui je pense pour vous va être une simple erreure.

Le problème est que je ne peut sélectionner une cellule ou a la limite une colonne.

$sheet = $objPHPExcel->getSheet(1);

$sheet = $Cell->Range('A1','A3');

foreach($sheet->getRowIterator(2) as $row) // commence a partir de la 2 eme ligne
{
foreach ($row->getCellIterator() as $cell)
{
echo $cell->getvalue().'<br/>';
}
}


J'ai essayé plusieurs solutions différentes mais rien ne marche