Exportation d'une requete vers Excel via PHP

Ish
Eléphant du PHP | 200 Messages

17 mai 2006, 10:55

Bonjour à tous,

je voudrais grâce à du php envoyer le resultat d'une requete dans un fichier Excel

Code : Tout sélectionner

SELECT * FROM etudiant WHERE sexe='H'
Je ne vois pas bien comment faire .... pour envoyer tout ca dans un fichier : tab.xls

On m'a très très vaguement expliqué que je pourrais y arriver avec des "Headers" .... mais pffffffff :shock:
Je vois pas bien !!!!

Merci
La vie est faite d'imprevu, et l'imprevu fait la vie
Gardez la peche !!

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

17 mai 2006, 10:59

Regarde à la page du SELECT : http://dev.mysql.com/doc/refman/5.0/fr/select.html
Le passage sur "INTO OUTFILE"

Tu peux aussi cherche le sujet sur le forum, ç a déjà été traité

Et un jour peut-être, Zeus finira son tuto :lol:

Ish
Eléphant du PHP | 200 Messages

17 mai 2006, 11:02

Aaaaaahhhh... faut que je parle à Zeus entre 4 oeils

Ok ok ok ... vais voir ça alors !!!
La vie est faite d'imprevu, et l'imprevu fait la vie
Gardez la peche !!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

17 mai 2006, 11:04

Et un jour peut-être, Zeus finira son tuto :lol:
Curieuse coincidence mais en nettoyant mon PC, je suis rentombe dessus ... et je m'y suis remis hier soir ;)

Sinon, pour ton problème, SELECT INTO OUTFILE ne te permettra que d'enregistrer au format CSV puis d'importer en xls via Excel.

Si tu veux directement enregistrer en Excel, tu peut te renseigner également sur la librairie PEAR:excel_writer
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Ish
Eléphant du PHP | 200 Messages

17 mai 2006, 11:13

Sinon j'ai regarder un peu les tutaux un peu partout et autre part :lol: !!!!

Et j'ai vu des choses interessante avec des "Headers" .... du style

Code : Tout sélectionner

header("Content-type: application/vnd.ms-excel");
ca vous dit quelque chose ????
La vie est faite d'imprevu, et l'imprevu fait la vie
Gardez la peche !!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

17 mai 2006, 11:29

Oui, mais il me semble que ça ne fonctionne que sous IE, Microsoft oblige ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

17 mai 2006, 11:29

En fait tu va pas faire du "Excel" mais du CSV, c'est à dire des données séparées par des , et des ;
Et avec une mise en forme très très simplette

Donc tu pourrais aussi faire un fopen(), des fwrite() en formatant les données et un fclose() en PHP, ça serait pareil. Sauf que ça serait bien plus lent à prioris.

Pour le coup des headers, ce ne sont pas eux tout seul qui vont te créer un fichier et écrire tes données dedans.

Edition : connais pas ton header spécial là, tu peux toujours essayer :P
J'avais oublié plein de mots en +
Modifié en dernier par ouckileou le 17 mai 2006, 11:42, modifié 1 fois.

Ish
Eléphant du PHP | 200 Messages

17 mai 2006, 11:34

Donc ca veux dire que faire des "header" m'amenerais à du Excel CSV ...
donc à exploiter, c'est pas le top ....

parceque le but après ca sera d'exploiter ces fichier donc si je peux rien en faire ... huumm pas cool
La vie est faite d'imprevu, et l'imprevu fait la vie
Gardez la peche !!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

17 mai 2006, 11:39

le header ne va que te permettre d'afficher les données, pas de les enregistrer.

Pour les enregistrer dans un fichier, il faut soit que tu utilise SELECT INTO OUFILE pour enregistrer en CSV ou la librairie PEAR pour enregistrer dans un fichier Excel
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

17 mai 2006, 11:41

C'est pas impossible non plus, il y a une classe PHP qui te fait de très beaux documents Excel avec tout ce que tu veux (elle n'est pas gratuite)

Et si tu n'as pas besoin de mise en forme complexe, le CSV convient très bien pour avoir un fichier Excel basique

Ish
Eléphant du PHP | 200 Messages

17 mai 2006, 12:19

Moi j'ai besoin de l'afficher .... apres lorsqu'il me l'ouvre en CSV .... je n'aurais qu'à l'enregistrer ....

nan ?
La vie est faite d'imprevu, et l'imprevu fait la vie
Gardez la peche !!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

17 mai 2006, 12:29

Je pense que tu n'as pas très bien compris le problème

Tu diposes de données qui sont dans ta base de données.
Afin de les obtenir au format CSV, tu as 2 moyens :
- SELECT INTO OUTFILE
- récupération des données et mise en forme avec PHP

Dès lors, l'afficher ou l'enregistrer dans un fichier n'est qu'une présentation et tu peux choisir l'un ou l'autre à ta guise. Pourquoi ne pas l'enregistrer directement plutôt que l'afficher pour l'enregistrer manuellement ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Ish
Eléphant du PHP | 200 Messages

17 mai 2006, 12:39

Oui c'est sur ... pourkoi se prendre la tête à l'afficher puis à l'enregistrer ..
Et effectivement je n'ai pas compris ... !!

Lorsque je vais faire ma fonction qui va m'exporter tout ca ... ya une fentre d'enregistrement qui va s'ouvrir pour me demander, ou est-ce que je veux l'enregistrer ??
Ou ca va le faire directement je vais lui dire en parametre le nom du fichier et cela va me l'enregistrer (remplie) !!
La vie est faite d'imprevu, et l'imprevu fait la vie
Gardez la peche !!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

17 mai 2006, 14:04

Je vais essayer de reprendre le problème calmement.

Tu veux exporter des données au format Excel, ou au moins CSV, et proposer au client de l'enregistrer sur son poste, c'est ça ?

ce qui reste le plus simple à faire, c'est de générer puis d'enregistrer le fichier d'export puis de forcer le téléchargement sur le post client.

Si tu donnes l'url d'un fichier csv à ton navigateur, il va l'afficher, pas proposer le téléchargement
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Ish
Eléphant du PHP | 200 Messages

17 mai 2006, 14:26

Ok c'est ca ....
exporter des données au format Excel, ou au moins CSV, et proposer au client de l'enregistrer sur son poste,
Donc grâce au "Select inputFile " ca va etre possible !
La vie est faite d'imprevu, et l'imprevu fait la vie
Gardez la peche !!