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

Langage PHP Discussion :

Créer un fichier excel valide depuis PHP


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de Sayrus
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    899
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 899
    Points : 570
    Points
    570
    Par défaut Créer un fichier excel valide depuis PHP
    Hello,

    Voici le code que j'utilise pour générer mon 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
    $line= 'COL1' . "\t" . 'COL2' . "\t" . 'COL3' . "\n";
    	$line.=' ' . "\t" . 'valCol11' . "\t" .  'valCol21'  . "\t"  . 'valCol31'  . "\n";
            $line.=' ' . "\t" . 'valCol12' . "\t" .  'valCol22'  . "\t"  . 'valCol32'  . "\n";
            $line.=' ' . "\t" . 'valCol13' . "\t" .  'valCol23'  . "\t"  . 'valCol33'  . "\n";
     
           header('Content-Disposition: attachment; filename=export-' . date('Y-m-d_His') . '.xls');
           header('Content-type: application/force-download');
           header('Content-Transfer-Encoding: binary');
           header('Pragma: public');
           header('Content-Encoding: UTF-8');
           header("Content-type: application/vnd.ms-excel; charset=UTF-8'");  
     
    	echo trim($line);
    	exit();
    Mon fichier est bien généré avec les colonnes. Avec Microsoft Excel sur Mac il l'ouvre sans problème.

    Avec Microsoft Excel sur PC, il l'ouvre mais il indique un message pop-up avant indiquant la que fichier ne semble pas être un fichier excel valide, et il me propose de continuer et de l'ouvrir. (Vous allez me dire c'est pas grâve). Ben si car sur certaines applications, quand ils demandent d'uploader un fichier excel, le fichier excel n'est pas reconnu!

    Par contre, si j'ouvre ce fichier généré dans Excel sur PC, que je continue malgré le message d'alerte et que j'enregistre le fichier sous..., il me propose .txt.... alors je choisi .xlsx et là le format du fichier est correct.

    Une idée de comment générer le fichier correctement ?

    Merci!

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Ton fichier ne doit pas porter l'extension XLS puisque c'est un fichier CSV.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé Avatar de Sayrus
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    899
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 899
    Points : 570
    Points
    570
    Par défaut
    C'est pourtant bien un fichier excel que je souhaite générer.

    Normalement avec les headers et les séparateurs \t, cela devrait constituer un fichier excel non ?

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Non ça fait un fichier CSV avec une tabulation comme séparateur.

    Un fichier Excel, pour les versions récentes, utilise la norme Office Open XML.
    La bibliothèque PHPExcel permet de créer des fichiers Excel.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé Avatar de Sayrus
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    899
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 899
    Points : 570
    Points
    570
    Par défaut
    Très bien merci.

    Je pensais qu'il était possible de générer un fichier excel valide sans devoir passer par une librairie simplement en jouant sur les headers...

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Un header ne fait pas de la conversion de fichier.
    Il fait juste passer des vessies pour des lanternes.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Créer un fichier Excel et le remplir depuis une table MySQL
    Par sihamnet dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 13/10/2012, 22h24
  2. [WD-2010] Créer un fichier excel depuis VBA Word
    Par chateau_dur dans le forum VBA Word
    Réponses: 7
    Dernier message: 09/12/2010, 16h10
  3. Créer un fichier excel
    Par Leimi dans le forum Access
    Réponses: 15
    Dernier message: 01/06/2006, 16h45
  4. [VB6]créer un fichier excel
    Par arakna dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 24/02/2006, 15h09
  5. Réponses: 1
    Dernier message: 02/02/2006, 14h26

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