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] Transmettre fichier excel


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 149
    Par défaut [PHPExcel] Transmettre fichier excel
    Bonjour à tous,
    Je suis en train de me mettre à la création de fichiers excel avec la librairie PhPExcel.
    Je m'aide du "guide" à cette adresse pour apprendre et comprendre:
    http://g-ernaelsten.developpez.com/tutoriels/excel2007/

    Histoire de commencer simplement, j'ai copié collé le premier bout de code pour créer un fichier excel et le sauvegarder sur le serveur.
    Voyant que cela ne marchait pas j'ai modifié dans l'exemple pour afficher le tableau dans la navigateur.
    Et là pas de chance non plus cela ne marche pas.
    Mais je ne cherche pas à le stocker sur le serveur ou l'afficher dans le navigateur.

    Je chercher à générer et "transmettre" / télécharger le fichier excel.
    J'entends par là, créer en Php la feuille (jusque là normal) ne pas l'afficher dans le navigateur et ne pas le sauvegarder sur le serveur mais au contraire afficher à la fin du script la fameuse petite fenêtre qui propose de télécharger le fichier excel.

    Est-ce que pour faire cette "manipulation" je suis obligé de créer le fichier excel et de le stocker sur le serveur?
    Si oui je me heurte à un problème de droit semble-t-il.

    Voici le message d'erreur que l'on me donne:
    (pour des raisons de "sécurité" j'ai masqué le domaine et des chemins par "xxx").

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Warning: fopen(./fichier.xls) [function.fopen]: failed to open stream: Permission denied in /home/xxx/www/utils/php2excel/Classes/PHPExcel/Shared/OLE/PPS/Root.php on line 88
     
    Fatal error: Uncaught exception 'Exception' with message 'Can't open ./fichier.xls. It may be in use or protected.' in /home/xxx/www/utils/php2excel/Classes/PHPExcel/Shared/OLE/PPS/Root.php:91 
    Stack trace: #0 /home/xxx/www/utils/php2excel/Classes/PHPExcel/Writer/Excel5.php(185): PHPExcel_Shared_OLE_PPS_Root->save('./fichier.xls') 
    #1 /home/xxx/www/xxx/xxx/Produits_FichierExcel.php(483): PHPExcel_Writer_Excel5->save('./fichier.xls') 
    #2 /home/xxx/www/xxx/xxx/AffichageMenuSelectionne.php(337): require('/home/xxx/...') 
    #3 /home/xxx/www/xxx/xxx/AccesPrive-UtilisateurIdentifie.php(13): require('/home/xxx/...') 
    #4 /home/xxx/www/xxx/index.php(84): require('/home/xxx/...') 
    #5 {main} thrown in /home/xxx/www/utils/php2excel/Classes/PHPExcel/Shared/OLE/PPS/Root.php on line 91

    Je vous remercie d'avance pour vos lumières !

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    le chemin n'est pas bon

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 149
    Par défaut
    merci de ta réponse stealth.

    Euh le chemin n'est pas bon. C'est à dire?
    Quel chemin j'ai mal rempli?

    Car ce qui me trompe et qui me fait croire que je n'ai pas les droits c'est le fameux "Failed to open stream: Permission denied"

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    ton serveur web n'as pas les droits pour ce chemin, donc faut lui donner

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 149
    Par défaut
    C'est bien ce qu'il me semblait.
    Je vais donc voir/négocier avec le manitou admin' réseau de ma boite.

    Et sinon pour mon interrogation sur le fait de "transmettre" le fichier excel.
    Je suis obligé de le stocker sur le serveur?
    Ou il y a un moyen pour donner à télécharger directement le fichier excel au visiteur sans passer par la case "stockage sur le serveur"?

    Merci de ton aide.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    oui tu peux le transmettre direct. montre tout ton code

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 149
    Par défaut
    Pour l'instant "mon code" c'est ça:

    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
     
    include "./../utils/php2excel/Classes/PHPExcel.php";
    include	"./../utils/php2excel/Classes/PHPExcel/Writer/Excel5.php";
     
    					$workbook = new PHPExcel;
     
    					$sheet = $workbook->getActiveSheet();
    $sheet->setCellValue('A1','MaitrePylos');
     
    $writer = new PHPExcel_Writer_Excel5($workbook);
     
    /*
    header('Content-type: application/vnd.ms-excel');
     header('Content-Disposition:inline;filename=Fichier.xls ');
     
    $writer->save('php://output');*/
     
    $records = "./fichier.xls";
     
    $writer->save($records);
    Je suis en phase d'apprentissage ce n'est que plus tard que les choses sérieuses vont commencer.

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    fait juste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $records = "php://output";

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 149
    Par défaut
    Il ne se passe rien.

    Voici le code:
    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
    include "./../utils/php2excel/Classes/PHPExcel.php";
    include	"./../utils/php2excel/Classes/PHPExcel/Writer/Excel5.php";
     
    					$workbook = new PHPExcel;
     
    					$sheet = $workbook->getActiveSheet();
    $sheet->setCellValue('A1','MaitrePylos');
     
    $writer = new PHPExcel_Writer_Excel5($workbook);
     
    /*
    header('Content-type: application/vnd.ms-excel');
     header('Content-Disposition:inline;filename=Fichier.xls ');
     
    $writer->save('php://output');*/
     
    //$records = "./fichier.xls";
    $records = "php://output";
     
    //$writer->save($records);

    Et j'ai essayé ceci:

    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
    include "./../utils/php2excel/Classes/PHPExcel.php";
    include	"./../utils/php2excel/Classes/PHPExcel/Writer/Excel5.php";
     
    					$workbook = new PHPExcel;
     
    					$sheet = $workbook->getActiveSheet();
    $sheet->setCellValue('A1','MaitrePylos');
     
    $writer = new PHPExcel_Writer_Excel5($workbook);
     
     
    //header('Content-type: application/vnd.ms-excel');
    //header('Content-Disposition:inline;filename=Fichier.xls ');
     
    $writer->save('php://output');
    Avec ce code, je me retrouve avec pleins de symboles sur ma page...

  10. #10
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    normale active le header

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 149
    Par défaut
    Effectivement cela marche.
    J'ai quelques manipulation à faire car mes fichiers sont imbriqués et mes headers sont déjà envoyé.
    Je vais devoir faire une petite manipulation mais bon cela fonctionne.

    Je te remercie beaucoup stealth !

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

Discussions similaires

  1. [PHPExcel] Génération de Fichiers Excel
    Par MaitrePylos dans le forum Bibliothèques et frameworks
    Réponses: 223
    Dernier message: 27/06/2016, 14h16
  2. Réponses: 1
    Dernier message: 30/11/2011, 16h54
  3. [PHPExcel] Lecture d'un fichier Excel 2007(lourd!)
    Par guillaume_74 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 02/02/2011, 09h38
  4. [PHPExcel] Lire des fichiers excel enregistrer en HTML
    Par llaffont dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 09/11/2010, 13h18

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