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 :

[Excel] Enregistrer un fichier Excel côté client


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre habitué Avatar de scorpking
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 232
    Points : 181
    Points
    181
    Par défaut [Excel] Enregistrer un fichier Excel côté client
    bonjour

    j'ai lu des tuto sur COM mais j'ai pa vraiment compris ou ça voulai en venir

    donc je demande ici
    j'ai une page qui genere un tableau avec les réponses d'une requete sql et j'aimerai que mes utilisateur puissent enregistrer la page sous un format exel par un bouton et avec le choix de l'endroit ou il peuvent l'enregisetrer sur LEUR machine et pas dans le serveur
    pour l'enregistrement je pense qu'il suffit d'enregistrer la page avec le code HTML sous un format .xls mais comment on enregistre là je sais pas faire

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Il faut que tu génères le fichier XLS sur le serveur et que tu proposes un lien à l'utilisateur vers ce fichier pour qu'il le télécharge.

  3. #3
    Membre habitué Avatar de scorpking
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 232
    Points : 181
    Points
    181
    Par défaut
    ouai en fait si je fais un nom unique le fichier sera ecraser a chaque fois donc si je récapitule bien je doit creer une page qui enregistre le code html de la précédente dans un fichier xls en efaçant les donné faite au précédent enregistrement puis lance le téléchargement de celui ci

  4. #4
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 500
    Points : 6 084
    Points
    6 084
    Par défaut
    Une petite alternative.
    - Tu génères ton tableau en HTML brute et proprement. Les données proviendrons surement d'une base de données. Pas grave tu génères le tableau html
    - Dans le fichier qui va afficher le tableau tu places en haut la fonction permettant d'écrire un header. La fonction c'est "header".
    - Tu indiques que c'est pour un téléchargement. Tu donne un nom de fichier. T'ndique le type mime d'excel

  5. #5
    Membre habitué Avatar de scorpking
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 232
    Points : 181
    Points
    181
    Par défaut
    heu j'ai pas tout suivie

    mon tableau en html je l'affiche quoi qu'il arive je laisse le choix a l'utilisateur d'enregistrer au format excel ou non sous fore de boutons
    mais ton header j'ai pas compris a quoi il sert

  6. #6
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 129
    Points : 127
    Points
    127
    Par défaut
    le header permet de spécifier au navigateur ce que tu veux effectuer avec ton script. Un header normal envoie le flux directement dans la fenetre du navigateur. Un header dont tu lui définis qu'il s'agit d'un téléchargement ou je ne sais quoi, apparaitra chez le client comme un téléchargement ou je ne sais quoi.

    La, tu as ton script qui envoie les données sur une page web, mais si tu lui ajoutes header pour le téléchargement alors le client devra definir le chemin il enregistrera ce fichier xls

  7. #7
    Membre habitué Avatar de scorpking
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 232
    Points : 181
    Points
    181
    Par défaut
    merci de l'explication c'est le principe de téléchargement auto comme sur 01.net

    mais le truc c'es que je veut donner le choix est ce qu'il y a un moyen d'activer le téléchargement par un bouton?

  8. #8
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 129
    Points : 127
    Points
    127
    Par défaut
    Tu peux appeler ton meme script simplement en définissant ton header en fonction du choix de l'user.

    S'il veut voir la page -> header normal
    S'il veux télécharger -> header download

    Pour moi, il y a juste le header qui change

  9. #9
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 500
    Points : 6 084
    Points
    6 084
    Par défaut
    Oui. Le bouton fait simplement un truc en javascript qui est. window.open('telechargement.php?ixxx=yyy','telechargement','');
    et c'est dans le fichier telechargement.php que tu fais ta soupe. En faite le header et juste pour parler avec le navigateur. Tu peux lui faire croire ce que tu veux.

  10. #10
    Membre habitué Avatar de scorpking
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 232
    Points : 181
    Points
    181
    Par défaut
    ok merci je vais faire des recherche sur la façon de remplir le header de ma page et le script a ajouter pour le téléchargement

  11. #11
    Membre habitué Avatar de scorpking
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 232
    Points : 181
    Points
    181
    Par défaut
    je comprend pas vraiment je trouve plein de chose mais rien ne semble correcpondre a ce que je veut ou alor je comprend vraiment pas
    donc je voudrai enregistrer le code tel qu'il saffiche a l'écran dans un fichier excel
    mais je n'ai pas encore compris l'histoire du code javascript
    et je n'arrive apas a comprendre quel header je doit utiliser

    edit j'ai relu et j'ai compri ou était le truc du header téléchargement et normal mais ce que je voudrai c'est que le téléchargement se fasse sans afficher de nouvelle page

  12. #12
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 500
    Points : 6 084
    Points
    6 084
    Par défaut
    Voici le code pour forcer le télechargement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    header("Content-type: application/force-download");
    header("Content-Disposition: attachment; filename=nom_fichier.extension");
    Voici le header qui va faire croire à ton navigateur que c'est excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Content-type:application/vnd.ms-excel');
    de ta page principale tu veux faire en sorte qu'il puisse y avoir une bouton ou lien pour un téléchargement ? bon. Le code au dessus doit être dans un fichier spécialement pour le telechargement pour faire simple. c'est dans ce fichier que tu vas générer un tableau HTML basique avec les codes du header. Pour appeler ce fichier il faut faire ceci. <input type="button" name="telecharger" value="Telecharger" onClick="window.open('telecharger.php','toto','width:1,height:1')">

    Que que qu'en j'y pense le deuxieme header ne sert à rien vu que tu veux le faire telecharger le fichier et non le visualiser depuis le navigateur.
    Donc je laisse les deux header. Soit tu force le télechargement soit tu l'affiches sur le navigateur. Dans les deux cas il peuvent l'enregistrer sur leur machine.

  13. #13
    Membre habitué Avatar de scorpking
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 232
    Points : 181
    Points
    181
    Par défaut
    dans tes explication tu parle de fichier le fichier en question étant le code html qu'a ecris la page php pour afficher le tableau je doit metre quel fichier a télécharger sachant que ce code est ephemere

    nom_fichier.extension c'est le nom qu'il y aura chez le clien ou le nom du fichier a télécharger
    dans le deuxieme cas il n'y a pas de fichier puisque il n'a jamais été enregistré mais il est juste là aprè l'affichage de mon résultat
    en bref je devrai écrire une nouvelle page qui ferai son propre enregistrement sous format xls pour bien faire

  14. #14
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 500
    Points : 6 084
    Points
    6 084
    Par défaut
    nom_fichier.extension c'est là que tu indiques le nom du fichier qui va être en sortie. Ton fichier peux s'appeler telechargement.php mais la personne va telecharger "toto.xls" parce que tu auras indiqué que le nom en sortie s'appelera ainsi.

    Pour faire simple je vais te donner un exemple :
    Tu créés un fichier Telechargement.php et tu places ceci dedans.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    header("Content-type: application/force-download");
    header("Content-Disposition: attachment; filename=monfichier.xls");
    echo '<table>'.chr(13);
    echo '    <tr>'.chr(13);
    echo '        <td>Cellule 1:1</td>'.chr(13);
    echo '        <td>Cellule 1:2</td>'.chr(13);
    echo '    </tr>'.chr(13);
    echo '    <tr>'.chr(13);
    echo '        <td>Cellule 2:1</td>'.chr(13);
    echo '        <td>Cellule 2:2</td>'.chr(13);
    echo '    </tr>'.chr(13);
    echo '</table>'.chr(13);
    ?>
    Tu créés un fichier html et tu places ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" name="telecharger" value="Telecharger" onClick="window.open('telecharger.php','toto','width:1,height:1')">

  15. #15
    Membre habitué Avatar de scorpking
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 232
    Points : 181
    Points
    181
    Par défaut
    ok merci pour ton aide je vais tester ça
    et désolé pour le temps de compréhention

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/04/2012, 02h06
  2. [VBA-E] une macro qui enregistre mon fichier Excel
    Par Djohn dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 02/03/2007, 12h47
  3. [VBA]enregistrer en fichier excel en macro
    Par jazziestan dans le forum SDK
    Réponses: 12
    Dernier message: 29/12/2006, 11h07
  4. Ouvrire ou Enregistrer un Fichier Excel
    Par jo281 dans le forum ASP
    Réponses: 1
    Dernier message: 13/12/2005, 19h55
  5. ouvrir un fichier excel coté client
    Par youss dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 27/07/2005, 15h42

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