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] php://output ?


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 351
    Par défaut [PHPExcel] php://output ?
    Bonjour à toutes et à tous,

    Lorsque je ressort un fichier xls par la sortie "php://output" celui arrive coronpu
    : message : Impossible d'ouvrir le Fichier "fichier.xlsx" car son format ou son extension n'est pas valide. Vérifier que le fichier n'est pas endommagé et son extension correspond bien au format du fichier.

    Je ne pense pas que ça soit un problème phpExcel puisque lorsque j'enregistre ce même fichier sur le serveur celui-ci est correct.

    D'où ma question: comment fonction cette sortie ? peut on régler certains paramètres liés à celle-ci ? ...

    Merci d'avance

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par défaut
    N'est-ce pas un problème de format Excel ?

    xlsx est le format XML d'Office sans doute incompatible avec phpExcel... Essaye avec un fichier xls.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 351
    Par défaut
    Désolé, j'aurais dut le préciser mais j'ai aussi essayé en xls (Excel 5) et le fichier est rempli de hiéroglyphes lorsque que je le sort par output. Alors qu'il est correct en l'enregistrant sur le serveur.

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par défaut
    Il faut peut-être préciser un header avant la sortie du fichier ?

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 351
    Par défaut
    Oui, c'est ce que je fais. Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header('Content-Disposition: attachment;filename=fichier.xlsx ');
    $writer->save('php://output');

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par défaut
    Je n'ai jamais fait ça donc je suis ptêt à côté de la plaque..

    Mais un truc m'intrigue :

    la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $writer->save('php://output');
    sauve ce qui est en sortie, ou est-ce que ça écrit en sortie ? Si ça ne fait que sauver, je pense mettre les header AVANT d'écrire sur la sortie...

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 351
    Par défaut
    C'est la commande phpExcel pour afficher directement à partir du navigateur.
    Apparemment ça envoi le fichier préparé à une sortie standard php.
    Mais le fichier arrive corrompu. Je met effectivement les header avant la sortie.

  8. #8
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Avez-vous tenu compte des recommandations des développeurs ?

    * Make sure not to include any echo statements or output any other contents than the Excel file. There should be no whitespace before the opening <?php tag and at most one line break after the closing ?> tag (which can also be omitted to avoid problems).

    Make sure that your script is saved without a BOM (Byte-order mark). (Because this counts as echoing output)

  9. #9
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 351
    Par défaut
    Salut Maitre,
    Oui j'ai regarder la doc dév et j'ai appliqué les recommandations :
    -ne pas mettre d'autres sorties (echo, print_r...)
    -ne pas fermer la balise php pour éviter les problèmes
    -mettre le format de fichier en without bom (j'ai mis en UTF without BOM)
    J'ai essayé avec ou sans balise php fermante, même résultat.
    Je vais essayé de recomposer le fichier petit à petit pour essayer de voir où ça bloque. Si vous avez des idées n'hésitez pas.

  10. #10
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 351
    Par défaut
    Ok j'ai trouvé d'où venait le problème. Je faisais un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once('connexion.inc.php');
    pour initialiser ma connexion. Et en fait c'est le require faisait planter.

    Il suffit de mettre l'initialisation de la connexion directement dans le script de l'export sans l'inclure par require, j'ai pas essayé avec include() mais je suppose que ça doit être pareil.

    En tout cas merci à tous.

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

Discussions similaires

  1. [PHPExcel] PHP Fatal error: Out of memory
    Par bdptakix dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 12/09/2012, 10h20
  2. PHPExcel boucle php
    Par fahdo dans le forum Langage
    Réponses: 2
    Dernier message: 14/08/2010, 16h24
  3. [PHPExcel] Extension Zip, phpexcel et php 5.2.8
    Par Sylvain__A_ dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 21/05/2009, 14h33
  4. Output buffering en PHP
    Par sylvanillo dans le forum Langage
    Réponses: 2
    Dernier message: 21/03/2007, 09h56

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