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 :

PHP et Excel


Sujet :

Langage PHP

  1. #1
    Membre éprouvé Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Par défaut PHP et Excel
    Bonjour à tous, je suis tombé sur un petit problème dont je n'ai pas la solution pour le moment, mais je pense que cela est réalisable.

    J'ai besoin de générer un fichier au format Excel, j'ai deja un peu cherché mais je n'ai trouvé des tutoriels qui utilise un "bidule COM" (oui désolé je suis pas au point sur les thermes et autres uses et coutumes :p), ce "bidule COM" apparament n'est dispo que pour Windows, hors mon serveurde production tourne sous Débian.

    Donc voila je cherche une solution qui fonctionnerai dans les 2 cas (sur Win pour le dev, sur Debian pour la prod).
    Avez-vous sous la main un lien ou un tuto (de préférence assez bien fourni oui je sais j'abuse) ?

    Cdt

  2. #2
    Membre émérite
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Par défaut
    T'as absolument besoin de générer un .xls (ou .xlsx dans le cas d'office 2007) ? Si non, alors génère plus un fichier au format CSV. Beaucoup plus simple et ne nécessite aucun outil spécial.

  3. #3
    Membre éprouvé Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Par défaut
    Je craint bien que je doit générer un fichier .xls

    Ce qui m'embête le plus c'est que cette partie de l'application ne sert strictement à rien, l'application est une GMAO autonome mais le client désire pouvoir extraire les données et les lire dans son habituel excel.

    Cependant je ne connais pas CSV.

    Je suis d'ailleurs ouverts à toute proposition équivalente pour contenter le client et mon application.

  4. #4
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    soit un texte écrit par PHP dans un fichier excel.csv :

    Age;Nom;Prenom;Societe
    22;R;Thomas;Dixxit
    21;R;Hajar;None

    Cela va générer dans excel trois lignes, chaque occurence séparée par un ";" aura pour effet de générer une colonne.

  5. #5
    Membre éprouvé Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Par défaut
    Donc je résume, un fichier csv est ouvrable par excel au même titre qu'un xls ?
    Pour ce type de fichier j'ecrit simplement (fputs () je crois ?) dans mon fichier en séparant par ";" chaque colonne ?
    Parcontre pour le saut de ligne y'as un caractère spécial ? \t ou \n ?

    Si ce n'est que cela, et bien

  6. #6
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    C'est exactement ca, pour un utilisateur windows le saut de ligne est \r\n pour un utilisateur sous UNIX \n.
    (si ma mémoire est bonne, vos doutes sont permis)

  7. #7
    Membre éprouvé Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Par défaut
    Et bien je vous remerci de la rapidité de la réponse, si par hazard je tombe sur un os je posterai un nouveau sujet.

  8. #8
    Membre émérite
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Par défaut
    Citation Envoyé par ThomasR Voir le message
    C'est exactement ca, pour un utilisateur windows le saut de ligne est \r\n pour un utilisateur sous UNIX \n.
    (si ma mémoire est bonne, vos doutes sont permis)
    La mémoire est encore bonne.

  9. #9
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Sous MySQL tu peux générer des fichiers CSV ultra simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $Query .=" INTO OUTFILE '/Data/export.csv'";
    $SQLQuery .=" FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\\r\\n'";

  10. #10
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Ha ouai c'est excelent.

    Mais je pense qu'il ne faut pas le faire sur une requête possédant un jeux de résultats trop volumineux.

  11. #11
    Membre émérite
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Par défaut
    J'ai un doute sur cette technique. Le fichier sera créé sur le serveur de bases de données ou sur le serveur php?

  12. #12
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Citation Envoyé par gwinyam Voir le message
    J'ai un doute sur cette technique. Le fichier sera créé sur le serveur de bases de données ou sur le serveur php?
    Je conçois que tu ai des doutes. Mais en tout état de cause, j'ai utilisé ce système et cela fonctionne nickel.
    Il te suffit de créer un bouton avec un lien vers le fichier pour le télécharger sur le client.

  13. #13
    Membre éprouvé Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Par défaut
    Vis à vis de mysql je ne suis pas sur que ca marche avec la version (ancienne) du serveur de production.

    C'est comme l'instruction fputcsv() étant en php4 sur le serveur je n'en bénéficie pas.
    Je sais faudrait mettre à jour le serveur, mais je n'ai pas encore les compétences et la bouteille nécéssaire pour le faire sans tout cassé, et de tête de nombreux sites en ligne sont codé à la (<? ?>) ce qui passe plus aujourd'hui (enfin je crois).

    Enfin pour en revenir je pense que je ferai à la méthode la plus simple dans un premier temps (écrire le fichier csv) et à la longue on trouvera mieux (c'est dur de faire comprendre à son patron non-informaticien qu'il faut du temps pour apprendre les choses évolués, il ne voie que le résultat lui).

  14. #14
    Membre émérite
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Par défaut
    Disons que si on peut éviter de faire <? ?> et faire <?php ?>, on le fait.

    D'accord donc en fait, riete, la méthode génère un fichier sur le serveur de bdd, c'est ça? Ok donc ensuite il faut effectivement un lien vers le fichier, de toute façon, dans tous les cas, il le faut hein

    Par contre ce que je me demande c'est si ça marche sur des hébergements mutualisés
    A enquêter

  15. #15
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Citation Envoyé par SirDarken Voir le message
    Vis à vis de mysql je ne suis pas sur que ca marche avec la version (ancienne) du serveur de production.
    Cette instruction existe au moins depuis la version 4.1 du serveur et peut être même depuis la 3.x. Après c'est ton choix
    Citation Envoyé par gwinyam Voir le message
    D'accord donc en fait, riete, la méthode génère un fichier sur le serveur de bdd, c'est ça? Ok donc ensuite il faut effectivement un lien vers le fichier, de toute façon, dans tous les cas, il le faut hein

    Par contre ce que je me demande c'est si ça marche sur des hébergements mutualisés
    A enquêter
    Si ton serveur de BDD est le même que ton serveur Web, il suffit que l'utilisateur qui "run" le serveur de BDD ait le droit d'écrire dans le répertoire que tu spécifie dans le chemin INTO OUTFILE '/Data/export.csv'. Si les 2 serveurs ne sont pas sur la même machine là ?? je n'ai pas testé.
    Pour la mutualisation, les réponses sont les même. Perso, je n'ai pas ce type de pb.
    A+

  16. #16
    Membre émérite
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Par défaut
    A l'occasion je testerai sur mutualisé, ça peut être un bon exercice

    D'autant plus qu'avec mes projets en cours, je vais avoir des exports à faire...

  17. #17
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Ok tiens nous au jus.

    A+

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

Discussions similaires

  1. MySQL, PHP et Excel, besoin d'aide !
    Par lynal dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 13/06/2006, 11h12
  2. [Excel] PHP et Excel
    Par gregal dans le forum Bibliothèques et frameworks
    Réponses: 19
    Dernier message: 05/05/2006, 16h26
  3. [Librairies] générer un .csv en php pour excel
    Par allowen dans le forum Langage
    Réponses: 3
    Dernier message: 14/12/2005, 16h40
  4. [PEAR][Spreadsheet] PHP/EXPORT EXCEL : nombre de formats de cellule différents !
    Par joe_le_mort dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 27/10/2005, 17h21

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