Salut,
malgré des recherches sur les tutos de developpez.com et google,
je n´ai pas trouvé de moyen d´exporter une base de données sql dans une feuille excel ...
Pourriez-vous m´aider ?
Merci beaucoup pour votre aide.
Salut,
malgré des recherches sur les tutos de developpez.com et google,
je n´ai pas trouvé de moyen d´exporter une base de données sql dans une feuille excel ...
Pourriez-vous m´aider ?
Merci beaucoup pour votre aide.
PhpMyAdmin le fait très bien. Une fois ta base ou table sélectionnée, tu as un onglet "Exporter".
Merci bisunurs,
mais en fait le but serait d´automatiser la chose pour que les personnes n´aient pas a toucher a phpmyadmin par exemple
Mais aussi de faire un tri partiel des donnees avant de l´envoyer en excel
Dans ce cas là tu peux faire une requête sur l'ensemble de ta table et utiliser de concert la fonction fputcsv().
Je vais regarder ca merci.
Salut les gards.
En fait il se trouve que moi egalement j'ai ce meme probleme depuis un certain temps. J'ai trouve un moyen d'exporter les donnees de ma base, voici a quoi ressemble le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <? $csv_output = '"column 1","column2"'; $result = mysql_query("select * from table"); while($row = mysql_fetch_array($result)) { $csv_output .= '"'.$row[col1].'","'.$row[col2]"'; } header("Content-type: application/vnd.ms-excel"); header("Content-disposition: csv" . date("Y-m-d") . ".xls"); print $csv_output; exit; ?>
Cela marche tres bien. Le probleme? eh bien dans ce code le delimiter c'est une virgule. Ce qu'il y a c'est que avec un autre ordinateur que le mien excel n'arrive pas a reconnetre ce delimiter, il affiche tout en texte(sans mettre en colonne).
Alors quelqu'un a une idee?
Merci
Essaie de mettre un point-virgule comme délimiteur.
J'ai deja essaye. Quand je mets un point-virgule chez moi ca ne marche plus, excel ne reconnait plus cela comme delimiteur. Je pense que ca doit etre quelque chose avec la configuration de excel, non?
C'est vrai, mais c'est pas ce que je veux. J'ai simplement besoin que ca marche avec excel.
Pas d'idees?
Tu veux que ta db soit affichée sous forme de tableau dans excel ?
J´ai trouvé ca qui est pas mal avec toutes les sources a telecharge, merci dev.net !
Oui c'est ca, je veux que ma db soit affichée sous forme de tableau dans excel .
Merci juju03 pour ce que t'as trouve. En fait ca s'est la facon la plus complexe de le faire en utilisant la classe PHP Spreadsheet_Excel_Writer_Workbook pour le travail avec Excel. Or avec ma source afiichee plus haut ca marche, c'est juste un probleme de delimiteur.
Mais bon ce que t'as trouve me plait tres bien, bien qu'un petit peu complique
Merci encore!
Bonsoir,
Quand j'ai ce genre de problème, je remplis un fichier texte avec les différentes colonnes séparées par des tabulations (\t) et la dernière colonne terminée par un passage à la ligne (\n)
Jusqu'ici, aucun problème majeur rencontré
A+
Moi je crée un tableau html contenant toutes les informations retournées par la requete SQL et je l'envoie à excel. Celui-ci ce débrouille comme un grand pour l'afficher correctement :
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 header("Content-type: application/vnd.ms-excel; charset=UTF-16LE"); header("Content-Disposition: attachment; filename=nom_de_fichier.xls"); _connect(); //connexion mysql $sql = "SELECT * FROM test;"; $res = mysql_query($sql) or die("BUG"); $num_fields = mysql_num_fields($res); // Récupere le nb de champs de la table $num_rows = mysql_num_rows($res); // Récupere le nb d'enregistrement $tbl= ' <table border="1px"><tr>'; for($i=0;$i<$num_fields;$i++){ $tbl = $tbl . "<td>".mysql_field_name($res, $i)."</td>"; // Affiche dans l'entête du tableau le nom de tous les champs renvoyer par la requete SQL } $tbl = $tbl . "</tr>"; while ($data = mysql_fetch_array($res)) { $tbl = $tbl . "<tr>"; for($i=0;$i<$num_fields;$i++){ $tbl = $tbl . '<td align="center">'.$data[mysql_field_name($res, $i)].'</td>'; // Affiche le contenu de chaque ligne retourné par la requete SQL } $tbl = $tbl . "</tr>"; } $tbl = $tbl . "</table>"; print $tbl ; _disconnect();
Sa fonctionne super bien comme ça !
Ouais t'as raison ca devrait marche, c'est juste que mon excel n'arrive pas a reconnaitre autres delimiteurs(tab, point-virgule,...) que la virgule. C'est tres bizzare. Peut-etre y a t-il un moyen de configurer cela sous excel, mais je ne sais pas comment.
Ca a l'air super ton code je m'en vais tout de suite l'essayer, esperant que ca marchera chez moi aussi.
Merci!
Salut nolev3 ,
je viens d'essayer ton code. Mais ca ne marche pas, quand j'exporte les donnees de la base ne s'affichent plus et il y a les tags HTML qui s'affichent(<table><tr><td>).
Tu sais c'est quoi le probleme?
J'ai peut etre mal recopier le code...
Je regarde ça.
Je viens d'effectuer qlques changements et maintenant ca affiche les donness, mais le tout en texte: pas de lignes ni colonnes.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager