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] Fichiers XLS ou XLSX


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier
    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
    Points : 80
    Points
    80
    Par défaut [PHPExcel] Fichiers XLS ou XLSX
    Bonjour à tous,
    Je viens vers vous car j'ai une question qui me pose un soucis concernant l'export de mon script pour faire un fichier Excel.

    Par défaut j'aimerai créer un fichier .xls. J'ai donc tout déclaré pour que cela génère un fichier de cette extension.

    Mais bizarrement d'autres personnes qui utilisent mon "application" le fichier téléchargé contient l'extension .xlsx.
    Du coup je ne comprends pas d'où cela peut venir.
    Est-ce qu'il pourrait y avoir un rapport avec les logiciels de bureautique installé sur les PC?
    Car j'ai constaté que sur mon PC qui ne possède qu'OpenOffice je télécharge bien un fichier .xls et que mes collègues qui ont Microsoft Office téléchargent un fichier .xlsx

    Dans le doute je vous montre les parties de mon code où je déclare le fichier excel:
    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
    <?php
     
     
     
    include "./../../utils/php2excel/Classes/PHPExcel.php";
    include	"./../../utils/php2excel/Classes/PHPExcel/Writer/Excel5.php";
     
    ....longues lignes de code qui vont bien ....
     
    $workbook = new PHPExcel;
    $sheet = 
    $workbook->getActiveSheet();
     
    $writer = new PHPExcel_Writer_Excel5($workbook);
     
     
     header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
     header('Content-Disposition:inline;filename=Fichier.xls ');
     $writer->save('php://output');
    Je vous remercie de votre aide.

  2. #2
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    .xlsx est une extension de nom de fichier pour tableur utilisé par Microsoft Office à partir de la version 2007
    Donc ces utilisateurs ouvrent bien ton fichier xls mais il est converti en xlsx ... le contraire n'est pas ok par contre sans converssion du xls en xlsx
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  3. #3
    Membre régulier
    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
    Points : 80
    Points
    80
    Par défaut
    D'accord mais du coup comment forcer la "non conversion" du fichier?

    Car le soucis c'est que les gens ne peuvent pas ouvrir mon fichier directement.
    Ils sont obligés de télécharger le fichier converti, renommer l'extension en .xls, pour ensuite pouvoir ouvrir le fichier.
    Ce qui n'est pas vraiment cool.
    Pour nous ce n'est pas vraiment gênant mais à terme mon "application" doit être utilisée pour nos clients. J'aimerai donc leur éviter cette gêne...

  4. #4
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Le mieux c'est de donner le choix à l'utilisateur du xls ou xlxx OU alors de détecter la version Office de l'utilisateur ... bref plusieurs possibilités

    Rappel:
    Pour les versions > 2007 prendre la fonction 'PHPExcel_Writer_Excel2007'

    Sinon aussi le cas de sauvegarder sous les deux formats
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  5. #5
    Membre régulier
    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
    Points : 80
    Points
    80
    Par défaut
    Disons que l'objectif est de ne pas proposer le choix et vraiment d'imposer le fichier .xls

    Après pourquoi pas proposer le choix de l'extension (xls, xlsx, CSV, PDF, HTML) effectivement mais je tiens avant tout à régler ce problème de conversion.

    Saurais-tu comment empêcher cette conversion?
    Ou alors devrais-je passer directement en xlsx pour éviter ce problème?
    Qu'en penses-tu?

  6. #6
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Saurais-tu comment empêcher cette conversion?
    Ca faut demander à un expert des outils Microsoft, relance la question sur le bon forum ...

    Ou alors devrais-je passer directement en xlsx pour éviter ce problème?
    Marchera pas pour ceux qui utilisent .xls

    Qu'en penses-tu?
    Si pas de question, je créerais les deux et ensuite l'utilisateur saura prendre le bon ...
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  7. #7
    Membre régulier
    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
    Points : 80
    Points
    80
    Par défaut
    Merci de ces indications Fench.

    J'ai tout de même réussi à 'forcer' le fichier excel en .xls.
    Cela venait de l'application à déclarer avant la transmission du fichier.

    Jusqu'à maintenant je déclarait fichier excel 5 avec extension .xls et l'application suivante:
    header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');

    En regardant de plus près le cours de MaîtrePylos, j'ai constaté que pour un fichier excel 5 il faut utiliser l'application suivante:
    $header = 'application/vnd.ms-excel';

    Après essai, je confirme que tout mes fichiers transmis sont en .xls
    (Suffisait que j'ouvre les yeux un peu plus grand).

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

Discussions similaires

  1. [XL-2013] GetSaveAsFilename et type de fichier (xls ou xlsx)
    Par DenisHen dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 21/01/2015, 12h36
  2. [XL-2010] Convertir un fichier xls en xlsx
    Par Ginette54 dans le forum Excel
    Réponses: 8
    Dernier message: 17/10/2013, 19h50
  3. Lire et écrire sur les fichiers xls et xlsx avec POI
    Par LILIFA dans le forum Documents
    Réponses: 4
    Dernier message: 23/07/2013, 22h33
  4. Réponses: 1
    Dernier message: 06/09/2012, 21h53
  5. [XL-2010] OUverture fichier .xls ou .xlsx impossible
    Par morti dans le forum Excel
    Réponses: 0
    Dernier message: 30/01/2011, 19h09

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