Votre question

Exporter un fichier en php

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
30 Juin 2011 09:44:30

Bonjour,
J'ai une page php qui affiche les valeurs d'une table de la base de données.
Je voulais exporter ce tableau affiché en fichier texte ou Excel.
Est ce que quelqu'un peut m'aider svp

merci d'avance

Autres pages sur : exporter fichier php

a c 145 L Programmation
30 Juin 2011 10:34:59

Le plus simple est d'exporter en CSV, et mieux qu'un long discours je te conseille de lire http://fr2.php.net/manual/en/function.fputcsv.php si tu veux générer un fichier.
Sinon, si tu as juste besoin de télécharger ton résultat de requête, tu peux faire:
  1. <?php
  2. $res = mysql_query($ta_requete);
  3. ob_start();
  4. while ($row = mysql_fetch_array($res)) {
  5. echo '"', implode('","', $row), '"', chr(13), chr(10);
  6. }
  7. header("Content-disposition: attachment; filename=export.csv);
  8. header("Content-Type: text/csv");
  9. header("Content-Transfer-Encoding: binary");
  10. header("Content-Length: ".ob_get_length());
  11. header("Pragma: no-cache, public");
  12. header("Cache-Control: public, no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
  13. header("Expires: 0");
  14. ob_end_flush();


Comme toujours dans de tels cas, la page ne doit rien afficher avant ce bout de code.
m
0
l
a b L Programmation
2 Juillet 2011 03:40:35

tous dépend de ce que tu veux en faire ensuite !!!

pour en faire un txt les header sont :
  1. header("Content-Type: text/plain");
  2. header("Content-Disposition: Attachment; filename="titre du txt".txt");
  3. header("Pragma: no-cache");


ensuite tu a juste a faire des echo pour remplir le txt avec :
" " (ASCII 32 (0x20)), un espace ordinaire.
"\t" (ASCII 9 (0x09)), une tabulation.
"\n" (ASCII 10 (0x0A)), une nouvelle ligne (line feed).
"\r" (ASCII 13 (0x0D)), un retour chariot (carriage return).
"\0" (ASCII 0 (0x00)), le caractère NUL.
"\x0B" (ASCII 11 (0x0B)), une tabulation verticale.
etc ...

pour en faire un tableau excel c'est un peut plus compliquer...
Je te conseille d'utilisé la lib : PHPExcel que tu pourra trouvais sur : http://phpexcel.codeplex.com/
et de suivre le tuto de developpez.com : http://g-ernaelsten.developpez.com/tutoriels/excel2007/


m
0
l
Contenus similaires
4 Juillet 2011 10:14:41

Selon le code de crazycat@idn il marche mais il écrit chaque case 2 fois consécutives en utilisant
  1. echo '"', implode('","', $row), '"', chr(13), chr(10);
m
0
l
a c 145 L Programmation
4 Juillet 2011 10:56:42

Oui, c'est à cause du réglage par défaut de PHP.
Modifie la ligne 4 de mon code par:
  1. while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
m
0
l
4 Juillet 2011 11:06:48

merci
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS