[php] Exportation de php/sql vers Excel

Résolu/Fermé
Foudébois Messages postés 4 Date d'inscription mercredi 17 mai 2006 Statut Membre Dernière intervention 15 novembre 2006 - 17 mai 2006 à 16:43
 hkmah - 6 juil. 2015 à 10:54
Bonjour à tous,

je programme une application en php/mysql sous windows et EasyPhp 1.7

Je voudrais savoir comment faut faire pour exporter le reslutat d'une requete SQL dans un fichier Excel (.xls ou .csv)

A partir de ma requete, j'affiche un tableau qui referencie l'ensemble des projets d'une société

Donc enormement de ligne, et je voudrais donc mettre toutes ces lignes dans un fichier excel pour pouvoir les utiliser apres ...

Merci beaucoup pour les futurs reponses ;-)
A voir également:

6 réponses

Un petit exemple dont tu peux t'inspirer pour creer un script PHP
Le fichier conf_int.php contiendra tes mots de pass etc..
conf_int.php:
#  codes administration de BDD
$DBHost="localhost";
$DBUser="xxxxxxx";
$DBPass="yyyyyyyyy";
$DBName="ASSOC";

export_excel.php:
<?php
    // à elle seule, la ligne suivante suffit à envoyer le résultat du script dans une feuille Excel
    header("Content-type: application/vnd.ms-excel");
    // la ligne suivante est facultative, elle sert à donner un nom au fichier Excel
   header("Content-Disposition: attachment; filename=E:\repertoire_destination\nom_fichier.xls");
   require_once("conf_int.php");
   // La suite est une simple requête php-mysql. On interroge la table utilisée dans l'exemple précédent. 
   $bdd = mysql_connect($DBHost,$DBUser,$DBPass);
   mysql_select_db((DB),$bdd);
   // notez la présence du caractère arobase (@) , en cas d'erreur, 
  // il empêche PHP d'écrire un message d'erreur sur le navigateur
    $requete=@mysql_query("SELECT prenom,nom,email FROM ".(TAB)." ORDER BY nom,prenom");
    // on vérifie le contenu de  la requête ;
    if (@mysql_numrows($requete) ==0) 
        {   // si elle est vide, on en informe l'utilisateur à l'aide d'un Javascript 
            print "<script> alert('La requête n\'a pas abouti !')</script>";
        } 

   // construction du tableau HTML
  print '<table border=1>
            <!-- impression des titres de colonnes -->
             <TR><TD>Prenom</TD><TD>Nom</TD><TD>email</TD></TR><TR>';

    // lecture du contenu de la requête avec 2 boucles imbriquées; par ligne et par colonne
    for ($ligne=0 ; $ligne<@mysql_numrows($requete);$ligne++)
     {
         for ($colonne = 0;$colonne < 3 ; $colonne++)  
              {
                 print '<TD>' .mysql_result($requete , $ligne,$colonne).  '</TD>';   
              }
       print '</TR>';
      }
    print '</TABLE>';
    mysql_close();

// on informe l'utilisateur de la réussite 
   if (@mysql_numrows($requete) >0) 
        {   
            print "<script> alert('La table est bien mise à jour !')</script>";
        } 
?>

29
Ca marche nickel, merci beaucoup !
Une petite info pour ceux qui vont utiliser ce script :

Attention à cette ligne :
filename=E:\repertoire_destination\nom_fichier.xls");

Sur serveur il faut virer le E:\repertoire_destination\ sinon le script vous proposer de télécharger votre tableau en .php :)
0
Bonjour
Je suis content de trouver cette idée de code. Vraiment merci.
Je note une petite erreur les fonctions mysql_numrow sont mal définies =>mysql_num_rows.
0