[RESOLU] writeexcel

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 : [RESOLU] writeexcel

par nabs » 18 avr. 2006, 17:20

ok je v tester et je te tiendrai au courant. en tout k merci pour ton aide.

par Hermès » 18 avr. 2006, 16:54

Je sais pas si EasyPHP gère la version 5 maintenant...
Sinon, essaye avec wamp, c'est ce que j'utilise et ça marche impec.

par nabs » 18 avr. 2006, 16:43

j'ai la 4.3.10 sde php,
peut etre que ca provient de ca je sais pas vraiment. et comment pourrai je installer la version 5, j'utilise easyphp et je crois que ca me la installé automatiquement. et si je l'installe n'y aurait il pas d'incompatibilités avec easyphp ?

par Hermès » 18 avr. 2006, 09:13

Quelle version de PHP tu utilises ?

Notice: Undefined variable: xf in c:\program files\easyphp1-8\www\excel\class.writeexcel_workbook.inc.php on line 666

A la ligne 666, j'ai juste
    $xf;
Je vois pas comment ça pourrait poser un problème à moins que ta version de PHP n'accepte pas la déclaration des variables de cette façon là (changement au passage de la version 5 ?)

Pour info, je suis en version 5 et je n'ai jamais testé writeexcel avec une version 4...

par nabs » 17 avr. 2006, 00:28

voici les erreurs qu'il me génère kan je fais appel au fichier example-simple.php :
Notice: Undefined offset: 3 in c:\program files\easyphp1-8\www\excel\class.writeexcel_worksheet.inc.php on line 1209

Notice: Undefined offset: 3 in c:\program files\easyphp1-8\www\excel\class.writeexcel_worksheet.inc.php on line 1152

Notice: Undefined offset: 3 in c:\program files\easyphp1-8\www\excel\class.writeexcel_worksheet.inc.php on line 1152

Notice: Undefined offset: 3 in c:\program files\easyphp1-8\www\excel\class.writeexcel_worksheet.inc.php on line 1152

Notice: Undefined offset: 3 in c:\program files\easyphp1-8\www\excel\class.writeexcel_worksheet.inc.php on line 1152

Notice: Undefined offset: 3 in c:\program files\easyphp1-8\www\excel\class.writeexcel_worksheet.inc.php on line 1334

Notice: Undefined offset: 3 in c:\program files\easyphp1-8\www\excel\class.writeexcel_worksheet.inc.php on line 1334

Notice: Undefined offset: 6 in c:\program files\easyphp1-8\www\excel\class.writeexcel_worksheet.inc.php on line 1470

Notice: Undefined offset: 2 in c:\program files\easyphp1-8\www\excel\class.writeexcel_worksheet.inc.php on line 2011

Notice: Undefined offset: 3 in c:\program files\easyphp1-8\www\excel\class.writeexcel_worksheet.inc.php on line 2012

Notice: Undefined variable: xf in c:\program files\easyphp1-8\www\excel\class.writeexcel_workbook.inc.php on line 666

Notice: Undefined variable: data in c:\program files\easyphp1-8\www\excel\class.writeexcel_workbook.inc.php on line 1121

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\excel\class.writeexcel_worksheet.inc.php:1209) in c:\program files\easyphp1-8\www\excel\example-simple.php on line 34

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\excel\class.writeexcel_worksheet.inc.php:1209) in c:\program files\easyphp1-8\www\excel\example-simple.php on line 35
ÐÏࡱá
si tu as une idée de ce qui peut bien se passer la dedans, merci de m'en faire part
et merci encore pour ton aide

par Hermès » 14 avr. 2006, 17:11

non, ça marche aussi sous unix/linux sans aucun problème.

Fais voir l'erreur que ça te provoque.
Il est possible que j'ai eut des erreurs lorsque j'ai commencé à m'en servir mais je sais pas si je suis allé corriger les bugs dans les classes writeexcel ou si le probleme venait d'autre part...

par Invité » 14 avr. 2006, 17:08

merci pour ton explication, cependant un pb se pose : quand je fais appel a cet "example-simple.php" il me genere des erreurs pour la plupart au niveau de la classe worksheet (la feuille de calcul), et sinon c au niveau de la classe workbook. c'est plutot ca qui me perturbe car comme tu l'as dis il suffit de savoir utiliser les classes, mais si celles ci ne marchent pas ... :?: :oops:
je vois que tu t procuré les memes classes que tu constatera tré lourdes et pour comprendre le fonctionnement dans le but de corriger les erreurs, il faut se lever tot (du moins pour ma part !!!lol). mais je c pas si tu l'as testé ché moi ca génère des erreurs plutot qu'un fichier xls lol.
autre chose aussi dont tu as parlé :
class.writeexcel_olewriter.inc.php -> classe pour sauver des fichiers BIFF dans une source d'information via l'interface OLE DB de Microsoft.
est ce que ca veut dire que ces classes ne fonctionnent que si le serveur est installé sur windows ?
le mien devra etre installé sur un Linux c d'ailleur pour ca que j'utilise pas la classe COM qui a l'air d'etre relativement simple.
merci encore pour ton aide

par Hermès » 14 avr. 2006, 16:30

Il ne faut pas te demander à quoi sert tel ou tel fichier, ce sont des fichiers servant à faire fonctionner leur librairie.

L'essentiel n'est donc pas de savoir comment ça fonctionne mais plutôt comment l'utiliser (bien qu'il peut être très intéressant de savoir comment ça fonctionne).

Maintenant on peut aussi faire des suppositions :
class.writeexcel_biffwriter.inc.php -> biff signifie Binary File Format. On peut supposer que ce fichier sert donc à écrire les fichiers Excel en mode binaire. A noter qu'il existe aussi un package du nom de BiffWriter (actuellement en version 2.1) servant à générer des fichiers Excel. Par ailleurs, ce package est, contrairement à writeexcel, mis à jour régulièrement.

class.writeexcel_format.inc.php -> aucune idée, il faudrait aller voir dedans pour savoir ce que ça gère, "format", c'est un peu vague.

class.writeexcel_formula.inc.php -> la aussi, aucune idée... La gestion des formules (calcul ou même formules excel) ?

class.writeexcel_olewriter.inc.php -> classe pour sauver des fichiers BIFF dans une source d'information via l'interface OLE DB de Microsoft.

class.writeexcel_workbook.inc.php -> un fichier excel est composé de feuilles. On peut supposer que cette classe sert à gérer l'ensemble des feuilles.

class.writeexcel_worksheet.inc.php -> on peut supposer que cette classe sert à gérer une feuille dans le workbook, donc dans le document excel.

Maintenant prenons le code de example-simple.php
<?php

set_time_limit(10);

require_once "class.writeexcel_workbook.inc.php";
require_once "class.writeexcel_worksheet.inc.php";

$fname = tempnam("/tmp", "simple.xls");
$workbook = &new writeexcel_workbook($fname);
$worksheet = &$workbook->addworksheet();

# The general syntax is write($row, $column, $token). Note that row and
# column are zero indexed
#

# Write some text
$worksheet->write(0, 0,  "Hi Excel!");

# Write some numbers
$worksheet->write(2, 0,  3);          # Writes 3
$worksheet->write(3, 0,  3.00000);    # Writes 3
$worksheet->write(4, 0,  3.00001);    # Writes 3.00001
$worksheet->write(5, 0,  3.14159);    # TeX revision no.?

# Write two formulas
$worksheet->write(7, 0,  '=A3 + A6');
$worksheet->write(8, 0,  '=IF(A5>3,"Yes", "No")');

# Write a hyperlink
$worksheet->write(10, 0, 'http://www.php.net/');

$workbook->close();

header("Content-Type: application/x-msexcel; name=\"example-simple.xls\"");
header("Content-Disposition: inline; filename=\"example-simple.xls\"");
$fh=fopen($fname, "rb");
fpassthru($fh);
unlink($fname);

?>
set_time_limite : Fixe le temps maximum d'exécution d'un script (source : Nexen.net)

Le script commence par la création d'un fichier temporaire simple.xls dans le répertoire temp, vu que le document excel ne sera pas sauvé mais généré à chaque fois qu'on appelle le script (sauf si on précise à la fin du script de le sauver).
Le script continue en créant un workbook, qui contiendra un ensemble de worksheet, à savoir de feuilles excel.
Puis le script crée sa première feuille excel (à laquelle il ne donne pas de nom vu que c'est la seule feuille du document).

Dans la case 0,0 il écrit "Hi Excel !"
Dans la case 2,0 il écrit 3
Dans la case 3,0 il écrit 3.000000
Dans la case 4,0 il écrit 3.000001
Dans la case 5,0 il écrit 3.14159
Dans la case 7,0 il écrit la formule Excel '=A3 + A6' qui correspond à la somme de la case A3 et de la case A6
Dans la case 8,0 il écrit la formule Excel '=IF(A5>3,"Yes", "No")' qui écrira Yes si la case A5 est supérieure à 3 et No dans le cas contraire
Dans la case 10,0 il écrit un lien http
il ferme son workbook

Il écrit le header pour que le script soit considéré comme un fichier Excel
Et il envoie le fichier Excel au navigateur pour que celui-ci ait l'impression d'ouvrir un vrai document excel.

Bref, il n'y a pas de réelle difficulté dans write_excel, il suffit d'ouvrir les examples avec Excel et en parallèle avec le bloc note pour voir directement ce que fait chaque commande et réutiliser ce dont on a besoin pour sa propre utilisation.

Problème de write_excel : il ne gère pas les accents et ne peut pas ouvrir le document Excel pour le lire.

par Invité » 14 avr. 2006, 14:40

peux-tu stp me donner un minimum d'explications, j'ai récupéré des fichiers ou des classes sont déclarées avec des exemples mais ya des erreurs quand je fais appel a l'un d'entre eux. les fichiers récupérés sont nombreux et en voici la liste :

class.writeexcel_biffwriter.inc.php
class.writeexcel_format.inc.php
class.writeexcel_formula.inc.php
class.writeexcel_olewriter.inc.php
class.writeexcel_workbook.inc.php
class.writeexcel_worksheet.inc.php
example-simple.php

je c pas si tu connais tout ces fichiers avce leur utilité, mais si je peux avoir des explications sur certains d'entre eux ca serai deja le top.
merci pour ton aide.

par Hermès » 14 avr. 2006, 12:18

non, writeexcel est pas spécialement compliqué je trouve (je m'attendais à pire je dois dire).
Son seul défaut est qu'il n'y a pas de doc et qu'il faille regarder les exemples pour comprendre comment ça marche.

Mais vu qu'ils n'ont rien de sorcier, c'est pas trop génant.

par nabs » 14 avr. 2006, 12:03

ok merci pour ton aide et pour ton lien. je v chercher sur les sites de linux comme tu le dis. j'ai deja consulté le lien que tu ma donné. merci encore.

par Jib » 14 avr. 2006, 11:52

désolé je suis pas expert de ca.

bon courage, tu pourrai aller faire un tour sur les sites dédiées a linux et peut etre que des gens pourront t'aider.
par exemple,

http://www.ze-linux.org/news-mail__lire ... l-387.html

par nabs » 14 avr. 2006, 11:49

ok, merci pour ton lien mais il ne traite que de la classe COM. celui ci serait interessant si l'appli devait rester sur windows, mais c pas le k je devrait la mettre sur un serveur linux. d'autant plus que j'ai rencontré un pb avec le serveur apache sur windows en essayant d'utiliser cette classe COM.

par Jib » 14 avr. 2006, 11:38

désolé pour la reponse mais comme on me le fait souvent....
http://fr.php.net/com est ton ami^^( j'ai verifier, y a quelque chose dessus)

writeexcel

par nabs » 14 avr. 2006, 11:34

slt a tous,

j'ai decouvert qu'il était possible de générer des fichiers xls en php a l'aide de writeexcel, j'aimerai avoir des details sur writeexcel, qui apparement est une classe tré complexe (sauf erreur de ma part), et je souhaiterai surtout savoir utiliser cette classe car tré compliké. j'ai téléchargé des scripts mais ya des erreurs au sein meme de la classe. est il possible d'avoir des explication sur le fonctionnement, des liens ou nimporte koi qui puisse me faire avancer pour pouvoir enfin générer ces fichiers xls. merci a tous

ps : je bosse actuellement sur windows avec easyphp 1.8 (php4.3.10, mysql4.1.9 et apache 1.3.33), mais l'appli que je dois développer sera installé sur un serveur apache sous linux.