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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [php-Excel] Feuille de Calcul Excel insérée dans un site Web

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

par jejecoco » 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

par Cappe » 16 mai 2007, 09:02

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

par jpaul » 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	
?>

par Sékiltoyai » 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 :)

par orgerix » 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é...

par jpaul » 15 mai 2007, 20:14

Reviens faire un tour quand même plus tard.
Par curiosité, j'essaye avec l'objet COM.
J'arrive déjà en m'inspirant d'exemples à générer un fichier excel.
Maintenant, je vais essayer de voir si je peux lire un fichier existant rentrer des nombres dans des cellules et lire le résultat d'une formule...
Je ne promets rien mais on ne sais jamais...
Je te tiens au courant.

par Cappe » 15 mai 2007, 19:26

A mon grand regret, je n'ai pas le choix... :cry:
Ca va etre du bricolage, mais je vais tenter le coup!

par Sékiltoyai » 15 mai 2007, 15:06

Malheureusement, c'est impossible(plusieurs mois de travail)
Le codage tu veux dire ? pas le calcul.
De plus, des sites comme la SNCF ont ce type de systeme (données prises sur le site, calculateur, restitution données.)
Peut être utilisent-ils un calculateur, mais ca m'étonnerait grandement qu'ils fassent cela avec Excel (même si ca expliquerait la lenteur du service :D ). Excel est une usine à gaz, et c'est un tableur, pas un logiciel de calcul, quoi que certains puissent en dire. Donc même si quand on sait l'utiliser, ca peut être pratique pour calculer un ou 2 trucs sur des données conséquentes, ce n'est pas le but premier et ca ne peut en aucun cas tenir le choc d'une utilisation dans un environnement de production. Donc, même si tu arrivais à faire le lien entre Excel et php, je pense que ca ne donnerait pas grand chose.
Concernant la SNCF, si jamais ils utilisent un calculateur, c'est un calculateur codé spécialement pour eux, en C ou en java pour éviter la lenteur de l'interprété (même si java ca reste de l'interprété :) ), et optimiser les calculs. Donc, dans tous les cas, je pense qu'il y aurait de toute manière quelquechose à recoder. Après le problème ne me semble pas clair donc je ne peux pas en dire plus, mais je pense que partir avec l'intention d'utiliser Excel était une très mauvaise approche du problème...

par Cappe » 15 mai 2007, 13:59

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...).
Malheureusement, c'est impossible(plusieurs mois de travail), le pricer est enorme. De plus, des sites comme la SNCF ont ce type de systeme (données prises sur le site, calculateur, restitution données.) Donc c'est faisable!!

par Sékiltoyai » 15 mai 2007, 13:39

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

par Cappe » 15 mai 2007, 10:35

Moi aussi;plus j'avance, plus je sens que ca va etre tordu a faire... :wink:

par Sékiltoyai » 15 mai 2007, 09:55

Je pense que tu va avoir du mal, à moins par des composants COM, mais à mon avis c'est chiant à utiliser (et connaissant MS, ca doit pas être documenté...)

par Cappe » 15 mai 2007, 09:28

Non, non, la feuille de calcul est deja faite :) , et marche tres bien! Le probleme c'est vraiment la communication Excel-Php

par Sékiltoyai » 15 mai 2007, 09:25

Pour des trucs comme ca, Maple serait pas plus approprié ? :-/

par Cappe » 15 mai 2007, 09:03

Merci pour vos reponse, en effet, Jpaul, la feuille de calcul en question est une enorme usine a gaz, qui ne peut pas etre retapée sous Php, (c'est une simulationd de Montecarlo pour prevoir une variable aléatoire :roll: )
Donc si quelqu'un a une idée...je prend!! :D