Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2364 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  générer un fichier excel en php sous apache

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

générer un fichier excel en php sous apache

n°1090923
tikyoka
Posté le 20-05-2005 à 16:07:15  profilanswer
 

Bonjour,
 
J'arrive à générer un fichier excel en php, je test tout sous easyphp, ça marche.
Mais voilà maintenant on a installé apache, mysql... sur le serveur
et là plus rien ne marche. A la place d'avoir un fichier excel j'ai une belle
page blanche!  :wahoo:  
Je ne sais pas si cela vient de la configuration d'apache ou de mon script php.
(Je génere le fichier .xls avec writeexcel)
 
Merci de vos réponses  :pt1cable: je commence à plus savoir quoi faire!

mood
Publicité
Posté le 20-05-2005 à 16:07:15  profilanswer
 

n°1090959
soju
One shot !
Posté le 20-05-2005 à 16:33:10  profilanswer
 

même pas un msg d'erreur ?
essaye de mettre error_reporting(E_ALL); au début de ton script, on y verra peut être plus clair

n°1090969
tikyoka
Posté le 20-05-2005 à 16:41:34  profilanswer
 

oui j'ai une erreur!
il me dit : 2047

n°1091201
Profil sup​primé
Posté le 20-05-2005 à 19:44:22  answer
 

tikyoka a écrit :

oui j'ai une erreur!
il me dit : 2047


tu mets  
<?
error_reporting(E_ALL);  
?>
pas
 
<? echo E_ALL; ?>

n°1093040
tikyoka
Posté le 23-05-2005 à 10:04:55  profilanswer
 

alors sous easyphp j'ai plein d'erreur dans writeexcel
mais bizarement l'appli marche!
et avec apache il ne m'indique aucune erreur et l'appli  
ne fonctionne pas.

n°1093042
cesarr89
Posté le 23-05-2005 à 10:06:17  profilanswer
 

tikyoka a écrit :

alors sous easyphp j'ai plein d'erreur dans writeexcel
mais bizarement l'appli marche!
et avec apache il ne m'indique aucune erreur et l'appli  
ne fonctionne pas.


 
EasyPHP utilise APACHE.
 
 
 

n°1093093
tikyoka
Posté le 23-05-2005 à 10:51:52  profilanswer
 

dans le fichier mime type j'ai bien :
application/vnd.ms-excel  xls
Y a t'il quelque chose à configurer dans apache
pour qu'il lance l'application excel?
Ou quel code faut-t'il rajouter pour ouvrir excel  
dans le navigateur?

n°1093189
tikyoka
Posté le 23-05-2005 à 11:44:35  profilanswer
 

svp aidez-moi

n°1093192
soju
One shot !
Posté le 23-05-2005 à 11:45:32  profilanswer
 

tikyoka a écrit :

svp aidez-moi


si tu veux qu'on t'aide va falloir nous aider avant :
- messages d'erreurs ?
- bout de code ?

n°1093208
tikyoka
Posté le 23-05-2005 à 11:59:51  profilanswer
 

soju a écrit :

si tu veux qu'on t'aide va falloir nous aider avant :
- messages d'erreurs ?
- bout de code ?


 
Voilà le code :

Code :
  1. <?php
  2. error_reporting(E_ALL);
  3. //on recupere les infos dans la bdd
  4. include_once("FonctBdd.php" );
  5. $Id=RetourneIdManif($_POST["sManif"]);
  6. include("Variables.php" );
  7. $con=mysql_connect($host,$user,$pass) or die ("connexion impossible a la base de donn&eacute;e" );
  8. mysql_select_db($bdd);
  9. $result=mysql_query("select civilite,nom,prenom,compl_adresse,adresse,code_postal,ville,societe,fonction from ".$prefix."_PERSONNALITE a, ".$prefix."_ADRESSE b, ".$prefix."_LISTE_MANIF c, ".$prefix."_FONCTION d where id_manif='$Id' and c.id_adresse=b.id_adresse and c.id_p=a.id_p and a.id_fonction=d.id_fonction" );
  10. if(mysql_num_rows($result)>0) { //Si au moins une ligne est retournée
  11. require_once "../writeexcel/class.writeexcel_workbook.inc.php";
  12. require_once "../writeexcel/class.writeexcel_worksheet.inc.php";
  13. $fname = tempnam("/tmp", "publipostage.xls" );
  14. $workbook =& new writeexcel_workbook($fname);
  15. $worksheet =& $workbook->addworksheet('Adresses des personnes');
  16. $text_format =& $workbook->addformat(array(color=>'blue', size=>10, font=>'Comic Sans MS', text_h_align=>2));
  17. $worksheet->write('A1', "Civilité", $text_format);
  18. $worksheet->write('B1', "Nom", $text_format);
  19. $worksheet->write('C1', "Prénom", $text_format);
  20. $worksheet->write('D1', "Complément_adresse", $text_format);
  21. $worksheet->write('E1', "Adresse", $text_format);
  22. $worksheet->write('F1', "Code_Postal", $text_format);
  23. $worksheet->write('G1', "Ville", $text_format);
  24. $worksheet->write('H1', "Organisme", $text_format);
  25. $worksheet->write('I1', "Fonction", $text_format);
  26. $i=2;
  27. while (($ligne=mysql_fetch_row($result))!=false){
  28.  $worksheet->write('A'.$i, $ligne[0]);
  29.  $worksheet->write('B'.$i, $ligne[1]);
  30.  $worksheet->write('C'.$i, $ligne[2]);
  31.  $worksheet->write('D'.$i, $ligne[3]);
  32.  $worksheet->write('E'.$i, $ligne[4]);
  33.  $worksheet->write('F'.$i, $ligne[5]);
  34.  $worksheet->write('G'.$i, $ligne[6]);
  35.  $worksheet->write('H'.$i, $ligne[7]);
  36.  $worksheet->write('I'.$i, $ligne[8]);
  37.  $i++;
  38. }
  39. $workbook->close();
  40. header("Content-Type: application/x-msexcel" );
  41. $fh=fopen($fname, "rb" );
  42. fpassthru($fh);
  43. unlink($fname);
  44. }
  45. else { //si la requête ne retourne rien
  46. echo "&nbsp;Il n&#39;y a aucune personne associ&eacute;e avec cette manifestation.";
  47. echo "<br><br><form>&nbsp;<button name='b' type='button'value='retour' onClick='history.back()'>retour</button>
  48.  </form>";
  49. }
  50. ?>


 
et quand aux erreurs ce sont que des notice du genre :
Notice: The call_user_method_array() function is deprecated, use the call_user_func variety with the array(&$obj, "method" ) syntax instead in c:\program files\easyphp\www\vip\writeexcel\class.writeexcel_format.inc.php on line 113

mood
Publicité
Posté le 23-05-2005 à 11:59:51  profilanswer
 

n°1093476
tikyoka
Posté le 23-05-2005 à 15:09:30  profilanswer
 

alors avez vous une piste svp?

n°1093497
soju
One shot !
Posté le 23-05-2005 à 15:19:54  profilanswer
 

recapitulons :
- avec easyphp tu as les notices et l'appli marche ? (bizarre car si ya des notices, ton header ne fonctionnera pas...)
- avec apache sans easyphp tu as une page blanche ? (même avec error_reporting(E_ALL); ???)
 
c'est bien ça ?

n°1093527
tikyoka
Posté le 23-05-2005 à 15:36:17  profilanswer
 

oui c'est bien ça!
apparemment ça plante au moment des :
require_once "../writeexcel/class.writeexcel_workbook.inc.php";
require_once "../writeexcel/class.writeexcel_worksheet.inc.php";
 
Peut être que la classe writeexcel n'est pas compatible
avec php5? Car ça marche avec php4.2...

n°1093601
soju
One shot !
Posté le 23-05-2005 à 15:59:16  profilanswer
 

forcemment... je pensais depuis le début que tu utilisais la même version de php...

n°1093697
tikyoka
Posté le 23-05-2005 à 16:47:57  profilanswer
 

Mon problème c'est donc que je ne sais pas avec quelle
méthode générer un fichier excel en utilisant php5.
J'ai testé avec les méthodes writeexcel et COM.
Je ne sais pas ce qui est le plus approprié? :heink:  

n°1093721
soju
One shot !
Posté le 23-05-2005 à 16:57:18  profilanswer
 

t'as essayé avec http://pear.php.net/package/Spreadsheet_Excel_Writer/ ? (je ne sais pas si compatible php5)

n°1094447
betsamee
Asterisk Zeperyl
Posté le 24-05-2005 à 09:50:56  profilanswer
 

oui c'est compatible

n°1094617
tikyoka
Posté le 24-05-2005 à 11:18:09  profilanswer
 

Merci de votre aide.
Mais je ne trouve pas vraiment de doc pour utiliser
spreadsheet_excel_writer. Avez vous un fichier exemple?

n°1094723
tikyoka
Posté le 24-05-2005 à 12:05:00  profilanswer
 

quelqu'un a-t'il déjà utilisé la classe spreadsheet_excel_writer pour générer un fichier excel?
Pourriez-vous me donner des indices svp?
(Je suis sous windows et php 5)

n°1094881
soju
One shot !
Posté le 24-05-2005 à 13:42:53  profilanswer
 

tikyoka a écrit :

Mais je ne trouve pas vraiment de doc pour utiliser

http://pear.php.net/manual/en/pack [...] writer.php

n°1095056
tikyoka
Posté le 24-05-2005 à 14:58:24  profilanswer
 

Merci pour la doc!
Je teste et voilà l'erreur qu'il me met :
 
Fatal error: Failed opening required 'PEAR.php' (include_path='.;C:\Program Files\EasyPHP\php\pear\Includes') in c:\program files\easyphp\www\vip\script\Spreadsheet\Excel\Writer.php on line 34
 
Je n'ai pas de fichier pear.php dans le package que j'ai dl.
et apparemment c'est pas le seul fichier qui me manque.
Alors savez-vous comment installer spreadsheet_excel_writer
sous windows?

n°1095077
soju
One shot !
Posté le 24-05-2005 à 15:08:42  profilanswer
 
n°1095880
Spir
Words are timeless
Posté le 25-05-2005 à 08:59:31  profilanswer
 

Sinon tu peux utiliser les fichier excel au format csv...
C'est tout de même beaucoup plu simple nan?
http://www.asp-php.net/scripts/asp [...] _excel.php
http://odbcphp.free.fr/php-odbc.php?m=xls

n°1095904
esox_ch
Posté le 25-05-2005 à 09:10:00  profilanswer
 

et comme ça tu plombera pas ton serveur avec l'imonde PEAR *lance sa bataille contre les moulins a vent*


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1095907
Spir
Words are timeless
Posté le 25-05-2005 à 09:11:29  profilanswer
 

mais Ouais CSV c'est impec!

n°1095920
soju
One shot !
Posté le 25-05-2005 à 09:17:20  profilanswer
 

Spir a écrit :

mais Ouais CSV c'est impec!

lol, t'aurais pu le dire plus tôt !

n°1095925
Spir
Words are timeless
Posté le 25-05-2005 à 09:19:04  profilanswer
 

Bah désolé, je ne passe pas tout le temps ici.
Et puis je viens de m'y mettre (à la manipulation de fichier excel).

n°1095974
betsamee
Asterisk Zeperyl
Posté le 25-05-2005 à 09:43:43  profilanswer
 

Spreadsheet_Excel_Writer est parfait et simple d'utilisation
je le conseille vivement

n°1095976
soju
One shot !
Posté le 25-05-2005 à 09:44:22  profilanswer
 

Spir a écrit :

Bah désolé, je ne passe pas tout le temps ici.

oups, desole je t'ai confondu avec tikyoka

n°1095977
Spir
Words are timeless
Posté le 25-05-2005 à 09:45:04  profilanswer
 

Mais nan le CSV c'est mieux.
Pas de souci de macro ou de virus si tu importe... Bien que là on parle de générer...

n°1098181
tikyoka
Posté le 26-05-2005 à 15:01:52  profilanswer
 

Merci de votre aide. ;)  
 
J'ai finalement fait mon fichier en csv, c'est en effet ce qu'il y a de plus simple avec ph5!

Code :
  1. <?php
  2. //on recupere les infos dans la bdd
  3. include_once("FonctBdd.php" );
  4. $Id=RetourneIdManif($_POST["sManif"]);
  5. include("Variables.php" );
  6. $con=mysql_connect($host,$user,$pass) or die ("connexion impossible a la base de donn&eacute;e" );
  7. mysql_select_db($bdd);
  8. $result=mysql_query("select civilite,nom,prenom,compl_adresse,adresse,code_postal,ville,societe,fonction from ".$prefix."_PERSONNALITE a, ".$prefix."_ADRESSE b, ".$prefix."_LISTE_MANIF c, ".$prefix."_FONCTION d where id_manif='$Id' and c.id_adresse=b.id_adresse and c.id_p=a.id_p and a.id_fonction=d.id_fonction" );
  9. if(mysql_num_rows($result)>0) { //Si au moins une ligne est retournée
  10. $contenu='Civilité;Nom;Prenom;Complement adresse;Adresse;Code Postal;Ville;Organisme;Fonction'."\r\n";
  11. while (($ligne=mysql_fetch_row($result))!=false){
  12.  $contenu=$contenu.$ligne[0].';'.$ligne[1].';'.$ligne[2].';'.$ligne[3].';'.$ligne[4].';'.$ligne[5].';'.$ligne[6].';'.$ligne[7].';'.$ligne[8]."\r\n";
  13. }
  14. $file="fichier.csv";
  15. $fp=fopen($file,"w" ); // ouverture du fichier
  16. fputs($fp,$contenu); // enregistrement des données ds le fichier
  17. fclose($fp);
  18. header("Content-Type: application/force-download" );
  19. header("Content-Length: ".filesize($file));
  20. header("Content-Disposition: attachment; filename=".$file);
  21. readfile($file);
  22. unlink($file);
  23. }
  24. else { //si la requête ne retourne rien
  25. echo "&nbsp;Il n&#39;y a aucune personne associ&eacute;e avec cette manifestation.";
  26. echo "<br><br><form>&nbsp;<button name='b' type='button' value='retour' onClick='history.back()'>retour</button>
  27.  </form>";
  28. }
  29. ?>


 
Mais j'ai encore une question? eh oui encore! :bounce:  
Je crée ce fichier csv pour du publipostage et je suis obligé de le transformer en .xls
manuellement pour qu'il soit utilisable avec la fonction publipostage de word.
Je souhaiterai donc que le fichier csv soit enregistrer en .xls directement.
Quelqu'un a une idée? :??:

n°1098196
soju
One shot !
Posté le 26-05-2005 à 15:07:07  profilanswer
 

tikyoka a écrit :

Je souhaiterai donc que le fichier csv soit enregistrer en .xls directement.

on tourne en rond...  :whistle:  
sinon le publipostage se fait aussi avec du cvs

n°1099179
PETOZAK
Posté le 27-05-2005 à 10:38:52  profilanswer
 

Salut,
J'ai un probleme avec les objets com sous PHP 4.3, le serveur appache plante a chaque fois que je fais une invocation,j'ai activé la gestion du com dans le PHP.ini mais ca plante toujours?
Vous savez d'ou vient le pobleme?

n°1099237
tikyoka
Posté le 27-05-2005 à 11:10:08  profilanswer
 

Essai peut etre en rajoutant WinNT:// devant le nom de l'application :
$domainObject = new COM("WinNT://Domain" );
 
http://www.zend.com/php5/articles/php5-dotnet.php

n°1099252
tikyoka
Posté le 27-05-2005 à 11:14:40  profilanswer
 

Pour mon pb j'ai trouvé une solution :
J'ai remplacé $file="fichier.csv";  par $file="fichier.xls"
et dans $contenu, à la place d'écrire des ";" dans le fichier
je met des tabulations "\t"   :p

n°1099329
plainsofpa​in
Pingouino's lover
Posté le 27-05-2005 à 11:57:28  profilanswer
 

esox_ch a écrit :

et comme ça tu plombera pas ton serveur avec l'imonde PEAR *lance sa bataille contre les moulins a vent*


 
N'empeche esox, pear est une bonne chose je trouve, le problème c'est que ca n'est pas inclut dans php ...
 
Pour moi c'est une facon de centraliser des fonctions utiles, et d'en faire profiter les développeurs php :)


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
n°1099365
PETOZAK
Posté le 27-05-2005 à 12:08:38  profilanswer
 

tikyoka a écrit :

Pour mon pb j'ai trouvé une solution :
J'ai remplacé $file="fichier.csv";  par $file="fichier.xls"
et dans $contenu, à la place d'écrire des ";" dans le fichier
je met des tabulations "\t"   :p


Merci tikyoka j'ai essayé ce bout de code mais il freeze apache :(

Code :
  1. <?php
  2. $domainObject = new COM("WinNT://Domain" );
  3. while ($obj = $domainObject->Next()) {
  4.   echo $obj->Name . "<br>";
  5. }
  6. ?>

n°1099452
Spir
Words are timeless
Posté le 27-05-2005 à 13:20:25  profilanswer
 

tikyoka a écrit :

Pour mon pb j'ai trouvé une solution :
J'ai remplacé $file="fichier.csv";  par $file="fichier.xls"
et dans $contenu, à la place d'écrire des ";" dans le fichier
je met des tabulations "\t"   :p


Astucieu et intéressant!

n°1101459
erwan551
Posté le 30-05-2005 à 11:45:18  profilanswer
 

Salut le forum,
 
j' ai le script suivant tout simple pour me permettre de tester :
 
<?  
 
//démarage de word
$word = new COM("word.application" ) or die("Impossible d'ouvrir Word" );
 
//Activation
$word->Visible = 1;
 
//ouverture d'un document vide
$word->Documents->add();
 
//Ecriture dans le document
$word->Selection->TypeText("Ceci est un test" );
$word->Documents[1]->SaveAs("Fichier_inutile.doc" );
 
//Fermeture de word
$word->Quit();
 
//Libération de l'objet
$word->Release();
$word = null;
 
?>
 
J'ai installé EasyPhp. Qd je lance ce script, j'ai un message d'erreur proveant d'apache.exe qui me signale une erreur dans la mémoire.  
 
Comment je pourrais résoudre ce probleme ?
 
Merci de votre aide.

n°1102695
erwan551
Posté le 31-05-2005 à 11:42:20  profilanswer
 

Bonjour tous le monde,
 
personne ne peut m'aider?
Il suffit peut etre juste d'une petite modifications dans la configuration ??
 
Si quelqu'un peut m'aider ce serait sympa.
 
Merci d'avance ...

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  générer un fichier excel en php sous apache

 

Sujets relatifs
[Perl & XML] Validatin d'un fichier XMLcreer un fichier
renommer automatiquement une case dans un fichier Excel[vba excel] recuperer le nom d'une feuille dans une variable
recherche de fichier en javaRemplir des champs d'un fichier pdf
Récup de données numérique fichier txtAssemblage de fichier
inserer des donnée dans un fichier 
Plus de sujets relatifs à : générer un fichier excel en php sous apache


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR