IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[PHPExcel] Création de fichier


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 74
    Par défaut [PHPExcel] Création de fichier
    Bonjour,

    Je voudrai bien utiliser MaitrePylosExcel.php, mais je n'arrive pas à régler un problème.
    Lorsque j'exécute le script, tout a l'air de bien se passer, mais le fichier Tableur ne se génère pas. Il n'est pas inscrit sur le DD serveur, ni ouvert par Excel, bref il n'existe pas.

    Si je crée un script moi-même, tout fonctionne pourtant bien.
    J'ai bien PHPExcel dans le même répertoire.

    En script d'essai qui marche bien j'utilise :
    Classes/PHPExcel/Writer/Excel2007.php
    header('Content-type.....') et
    header(Content-Disposition.....') identiques à ceux qui sont dans MaitrePylosExcel.php ci-dessous.
    Il y a un schmilblick dans le code ci-dessous, mais je ne trouve pas.

    Si quelqu'un a une idée, je l'en remercie par avance.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
     
    /**
    * Classe étendue de PHPExcel.
    * Cette classe permet la génération dynamique
    * de fichier tableur suivant différent format.
    * @copyright 2008 MaitrePylos Technologies (Formatux.be)
    * @author
    * @license
    * @version
    Ernaelsten Gerard
    GPL
    Release: 0.1
     
    */
    <?
    require 'PHPExcel.php';
    class MaitrePylosExcel extends PHPExcel
    {
    	public function __construct() 
    	{
    	parent::__construct(); 
    	}
     
    	public function affiche($format = 'Excel5',$nomFichier = 'Tableur')
    	{
    		switch($format)
    		{
    			case 'Excel2007' :
    			include 'PHPExcel/Writer/Excel2007.php';
    			//$workbook = new PHPExcel;
    			$writer = new PHPExcel_Writer_Excel2007($this);
    			$ext = 'xlsx';
    			$header = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
    			$writer->setPreCalculateFormulas(false);
    			break;
     
    			case 'Excel2003' :
    			include 'PHPExcel/Writer/Excel2007.php';
    			$writer = new PHPExcel_Writer_Excel2007($this);
    			$writer->setOffice2003Compatibility(true);
    			$ext = 'xlsx';
    			$header = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; 
    			$writer->setPreCalculateFormulas(false);
    			break;
     
    			case 'Excel5' :
    			include 'PHPExcel/Writer/Excel5.php'; 
    			$writer = new PHPExcel_Writer_Excel5($this); 
    			$ext = 'xls';
    			$header = 'application/vnd.ms-excel'; 
    			break;
     
    			case 'CSV' :
    			include 'PHPExcel/Writer/CSV.php';
    			$writer = new PHPExcel_Writer_CSV($this); 
    			$writer->setDelimiter(",");//l'opérateur de séparation est la virgule
    			$writer->setSheetIndex(0);//Une seule feuille possible $ext = 'csv';
    			$header = 'text/csv';
    			break;
     
    			case 'PDF' :
    			include 'PHPExcel/Writer/PDF.php';
    			$writer = new PHPExcel_Writer_PDF($this); 
    			$writer->setSheetIndex(0);//Une seule feuille possible $ext = 'pdf';
    			$header = 'application/pdf';
    			break;
     
    			case 'HTML' :
    			include 'PHPExcel/Writer/HTML.php';
    			$writer = new PHPExcel_Writer_HTML($this); 
    			$writer->setSheetIndex(0);//Une seule feuille possible $ext = 'html';
    			$header = 'text/html';
    			break;
    		}
    		header('Content-type:'.$header); 
    		header('Content-Disposition:inline;filename='.$nomFichier.'.'.$ext); 
    		$writer->save('php://output');
    	}
     
    	/**
    	* Méthode englobant une fonction switch pour le choix du format de tableur. 
    	*/
    	public function enregistre($format = 'Excel5',$nomFichier = 'Tableur')
    	{
    		switch($format)
    		{
    			case 'Excel2007' :
    			include 'PHPExcel/Writer/Excel2007.php'; 
    			$writer = new PHPExcel_Writer_Excel2007($this); 
    			$ext = 'xlsx';
    			$writer->setPreCalculateFormulas(false); 
    			break;
     
    			case 'Excel2003' :
    			include 'PHPExcel/Writer/Excel2007.php'; 
    			$writer = new PHPExcel_Writer_Excel2007($this); 
    			$writer->setOffice2003Compatibility(true);
    			$ext = 'xlsx';
    			$writer->setPreCalculateFormulas(false); 
    			break;
     
    			case 'Excel5' :
    			include 'PHPExcel/Writer/Excel5.php'; 
    			$writer = new PHPExcel_Writer_Excel5($this); 
    			$ext = 'xls';
    			break;
     
    			case 'CSV' :
    			include 'PHPExcel/Writer/CSV.php';
    			$writer = new PHPExcel_Writer_CSV($this); 
    			$writer->setDelimiter(",");
    			$writer->setSheetIndex(0);
    			$ext = 'csv';
    			break;
     
    			case 'PDF' :
    			include 'PHPExcel/Writer/PDF.php';
    			$writer = new PHPExcel_Writer_PDF($this); 
    			$writer->setSheetIndex(0);$ext = 'pdf';
    			break;
     
    			case 'HTML' :
    			include 'PHPExcel/Writer/HTML.php';
    			$writer = new PHPExcel_Writer_HTML($this); 
    			$writer->setSheetIndex(0);$ext = 'html';
    			break;
    		}
    		$writer->save($nomFichier.'.'.$ext); 
    	}
    }

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Montre nous également le code qui utilise cette classe.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 74
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Montre nous également le code qui utilise cette classe.
    Il s'agit d'un fichier d'essai --> essai3PHPExcel.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    include 'Classes/MaitrePylosExcel.php';
    $workbook = new MaitrePylosExcel();
    $sheet = $workbook->getActiveSheet();
    $sheet->setCellValue('A1',4);
    $sheet->setCellValue('A2',5);
    $sheet->setCellValue('A3','=SUM(A1:A2)');
    $workbook->affiche('Excel2007','Tableur');
    Lorsque je l'exécute j'obtiens l'erreur suivante :
    (je ne maîtrise pas vraiment les messages en anglais !...)

    /** * Classe étendue de PHPExcel. * Cette classe permet la génération dynamique * de fichier tableur suivant différent format. * @copyright 2008 MaitrePylos Technologies (Formatux.be) * @author * @license * @version Ernaelsten Gerard GPL Release: 0.1 */ Warning: Cannot modify header information - headers already sent by (output started at /customers/5/4/0/XXXXX.fr/httpd.www/Classes/MaitrePylosExcel.php:14) in /customers/5/4/0/XXXXX.fr/httpd.www/Classes/MaitrePylosExcel.php on line 86 Warning: Cannot modify header information - headers already sent by (output started at /customers/5/4/0/XXXXX.fr/httpd.www/Classes/MaitrePylosExcel.php:14) in /customers/5/4/0/XXXXX.fr/httpd.www/Classes/MaitrePylosExcel.php on line 87 PKr�BG�D�X�[Content_Types].xml��MN�0���"�%nY ��vAa �(0����ؖg�w{&i �@�nbE�{��y��d۸l m�����X�(���)���F��;@1_�����c)j�x/%��E��y� �QĿi!��K�y3�J<���Z1�0?Y�L%zV c��Ib7�����a/l٥P1:�q�r��j��j0A����u�""���(� ���W�M��)Tj�({ܲ�>�O�

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Remplace <? par <?php et met le tout au début du fichier.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 74
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Remplace <? par <?php et met le tout au début du fichier.
    OK. Une erreur d'attention pour <?php

    Excuse-moi, je suis confus !.....

    Tout est OK. Entre nous, ça ne sert pas à grand chose de mettre <?php au tout début du script, vu qu'il n'y a que des commentaires au début, et qu'en plus il est en HTML.

    Mais ça ne gâche rien.


    Merci d'avoir dépanné un étourdi.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tout est OK. Entre nous, ça ne sert pas à grand chose de mettre <?php au tout début du script, vu qu'il n'y a que des commentaires au début, et qu'en plus il est en HTML.
    C'est justement le fait que les commentaires ne soient pas à l'intérieur du PHP, et donc affichés, qui faisait que ça ne marchait pas.
    <? fonctionne comme <?php, simplement certains serveurs pourrait ne pas l'accepter (mais ce n'est pas courant).
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHPExcel] Création fichier Multi Feuille
    Par Friksstyle dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 23/07/2012, 16h47
  2. [2.x] PhpExcel chemin de création du fichier
    Par bentah dans le forum Symfony
    Réponses: 1
    Dernier message: 04/06/2012, 17h34
  3. Création de fichier
    Par gsxr man dans le forum ASP
    Réponses: 2
    Dernier message: 28/06/2004, 22h19
  4. Réponses: 8
    Dernier message: 03/09/2003, 00h47
  5. création de fichiers .x
    Par Pazz dans le forum DirectX
    Réponses: 1
    Dernier message: 03/12/2002, 00h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo