De MYSQL vers Excell

Résolu
mightteam Messages postés 143 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 2 juin 2008 - 6 mars 2005 à 09:42
cs_Straw Messages postés 33 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 25 août 2008 - 30 mai 2006 à 00:10
Salut a tous voila je cherche une fonctione qui me permettrais de sortie les données d'une base MySQL en Excell.

J'ai regarder dans la doc de PHP mais g rien trouvé qui ressemble a ca.

Si quelqu'un sais m'aider je l'en remercie

Msn & Mail : Bruno@Pages-Concept.be

12 réponses

cs_navya Messages postés 33 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 8 novembre 2007
7 mars 2005 à 08:41
Salut,
Voici une solution que j'ai trouvé la semaine dernière!!

<?

header(
"Content-Type: application/csv-tab-delimited-table");
header(
"Content-disposition: filename=resultat.csv");

//cette ligne donne les titres des colonnes
$csv_output = "column 1,column2";
$csv_output .= "\n";
$result = mysql_query("select * from table"); //ta requete mySQL

while($row = mysql_fetch_array($result)) {
$csv_output .= "$row[col1],$row[col2]\n";//cette ligne écrit dans le fichier excel tant qu'il y a
//des résultats de requete
}

print $csv_output;
exit;
?>

Navya
3
ehmarc Messages postés 393 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 29 septembre 2008
7 mars 2005 à 09:07
salut

Il y a encore mieux comme solution (c'est un truc que j'ai trouver la semaine derniere aussi!!!!)
header("Content-type: application/vnd.ms-excel");

et pour l'affichage des données dans excel c'est tres simple
....les balises de tableau quoi

et oui excel reconnais le html!!!

++

"Aucun de nous ne sait ce que nous savons tous, ensemble."
Lao Tseu inventeur du "copier coller"
3
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
6 mars 2005 à 11:19
en php, non, évidement car c'est pas tout à fait pour ms...



faut utiliser l'activeX... vas dans le forum js, déja plein de choses
ont étés demandées sur ce sujet... bultez est un expert en activeX

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
mightteam Messages postés 143 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 2 juin 2008
7 mars 2005 à 08:50
Merci je test ca ce soir

Msn & Mail : Bruno@Pages-Concept.be
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_navya Messages postés 33 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 8 novembre 2007
7 mars 2005 à 09:36
Ma solution est aussi bien car les virgules sont les séparateurs qui forment les cellules du style <td>...</td> et donc pas besoin de mettre ces balises et pour un <tr> ... </tr> il suffit de mettre un \n donc toutes ces balises sont inutiles puisque tout est construit par les virgules et \n !!!

Navya
0
ehmarc Messages postés 393 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 29 septembre 2008
7 mars 2005 à 10:25
Les deux solutions ont leurs avantages inconvenients....

Tu enregistre en csv et non en xls, la lecture du csv n'est pas obligatoirement faite par excel(c'est un avantage pour toi).

Avec ma solutions, je pense qu'on peut retranscrire les macro et des conneries dans le style (c'est en cours de test) insertion sur plusieurs feuille etc.

Grossomodo si tu as juste des données a envoyer le .csv suffit amplement c'est sur !!! tu peut aussi afficher un tableau html dans une feuille faire ctrl+A ensuite ctrl+c ouvrir excel et faire ctrl+v enfin c'est un peu plus long, donc moins bien les utilisateurs sont toujours des gros boulets (heureusement d'ailleurs sinon on aurait pas de travail!!!)

Un truc que j'ai vu la semaine derniere quand tu lance le scrypt editor microsoft sur une feuille excel et bien on a une page avec du code html!!!!!!

++

"Aucun de nous ne sait ce que nous savons tous, ensemble."
Lao Tseu inventeur du "copier coller"
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
7 mars 2005 à 20:00
je ne savais pas qu'il existait autant de fonctionalitées pour un logiciel comme exel...


(dsl pour mon initiale réponse)




In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
mightteam Messages postés 143 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 2 juin 2008
9 mars 2005 à 19:11
Merci pour vos réponse ca marche nikel g utilisé l'entete que ehmarc m'a filé et ca marche de la balle merci pr cette info :p

Msn & Mail : Bruno@Pages-Concept.be
0
mightteam Messages postés 143 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 2 juin 2008
10 mars 2005 à 10:04
G encore un pti prob avec la fonction mais je crois que c'est dans mon code

Explication de mon problème :

voila en fait quand je génère le fichier XLS ou CSV qui doit contenir une liste de membre le problème qui s'oppose a moi est le suivant

il me crée le fichier comme il le faut puisque sur mon serveur intranet je peux le voir et le lire avec la liste actuelle des membres

mais a la fin de la création dans ma page php il me propose aussi de le DL et la quand je l'ouvre avec Excell il me sort "impossible d'ouvrir le fichier"

Voila si klk1 a une idée elle serais la bienvenue paske la ca fé 2 jours ke je galère et que je trouve pas

Voici mon code :

$filenum=fopen("Tournoi du $_GET[date] a $_GET[lieu].csv","w");
fwrite($filenum,$csv_output);
fclose($filenum);
exit;

Msn & Mail : Bruno@Pages-Concept.be
0
mightteam Messages postés 143 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 2 juin 2008
10 mars 2005 à 10:13
Désolé du dérangement g trouvé mon problème

merci quand mm

J'espere avoir pu t'aider

Msn & Mail : Bruno@Pages-Concept.be
0
cs_Straw Messages postés 33 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 25 août 2008
30 mai 2006 à 00:06
Je suis bien heureux de tomber sur ce topic car je dois également
exporter des données de MySql au format CSV.. J'ai donc utilisé
laméthode de Navya


Tout fonctionne mais il y a un soucis, c'est que toutes les données se mettent dans la même colonne, c-à-d la colonne A...


Je n'ai que 2 données à extraire, le nom et le niveau. Il faudrait donc
que les noms se mettent dans la colonne A et les niveaux dans la
colonne B. Voici le code utilisé : (où est l'erreur?)

if(isset($_POST['export_btn'])){

       

            header("Content-Type: application/csv-tab-delimited-table");

            header("Content-disposition: filename=membres.csv");

            //cette ligne donne les titres des colonnes

               $csv_output = "Nom" . "Niveau";

               $csv_output .= "\n";

              

            require_once("../include/fonctions.inc.php");

            $sql = "select * from users order by nom";

            $rs = mysql_query($sql) or die (mysql_error());

            while ($row = mysql_fetch_array($rs)){

             $csv_output .= "$row[nom],$row[userlevel]\n";

            }

             print $csv_output;

               exit; 

        }


Merci de votre aide


Straw

Straw @ workage -
0
cs_Straw Messages postés 33 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 25 août 2008
30 mai 2006 à 00:10
Oups pardon pour l'erreur dans le code, voici celui utilisé :

if(isset($_POST['export_btn'])){
       
            header("Content-Type: application/csv-tab-delimited-table");
            header("Content-disposition: filename=membres.csv");
            //cette ligne donne les titres des colonnes
               $csv_output = "Nom, Niveau";
               $csv_output .= "\n";
              
            require_once("../include/fonctions.inc.php");
            $sql = "select * from users order by nom";
            $rs = mysql_query($sql) or die (mysql_error());
            while ($row = mysql_fetch_array($rs)){
             $csv_output .= "$row[nom],$row[userlevel]\n";
            }
             print $csv_output;
               exit; 
        }


merci encore pour votre aide,


Straw

Straw @ workage - http://www.straw.ircjunx.net
0
Rejoignez-nous