MySQL -> fichier Excel

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


sim100
WRInaute accro
WRInaute accro
 
Messages: 1280
Inscription: Dim Fév 02, 2003 18:45

MySQL -> fichier Excel

Message le Mer Aoû 16, 2006 15:26

bonjour
J'ai une base de données MySQL avec 1 tables content des champs.

Je voudrait affichier le tableau sur une page web et avoir un bouton convertir en fichier Excel afin de reccupérer un fichier Excel avec le contenu de ma table.

Y a t-il une solution?

Merci


e-kiwi
Modérateur
Modérateur
 
Messages: 13854
Inscription: Mar Déc 23, 2003 9:04

Message le Mer Aoû 16, 2006 15:29

crer un fichier .csv en php séparé de ; pour les champs et de \n pour retour ligne, puis l envoyer en header() au navigateur. tu as besoin de fopen(), fputs(), et header(). ca devrai suffir


sim100
WRInaute accro
WRInaute accro
 
Messages: 1280
Inscription: Dim Fév 02, 2003 18:45

ouai

Message le Mer Aoû 16, 2006 15:30

Ouai, tu peux être un peu plus explicite?

Merci


tom_pascal
WRInaute impliqué
WRInaute impliqué
 
Messages: 278
Inscription: Lun Nov 17, 2003 13:58

Message le Mer Aoû 16, 2006 15:36

Quelquechose comme :

Code: Tout sélectionner
header("Content-disposition: filename=listing.csv");
header("Content-type: application/octetstream");
header("Pragma: no-cache");
header("Expires: 0");

$client = getenv("HTTP_USER_AGENT");
if(ereg('[^(]*\((.*)\)[^)]*',$client,$regs)) {
   $os = $regs[1];
   // this looks better under WinX
   if (eregi("Win",$os))
      $crlf="\r\n";
   else
      $crlf="\n";
}


while ($enr = <récupération du résultat de ta requete>) {
   print $enr["champ1"] . ";" . $enr["champ2"] . $crlf;
}   
exit();


e-kiwi
Modérateur
Modérateur
 
Messages: 13854
Inscription: Mar Déc 23, 2003 9:04

Message le Mer Aoû 16, 2006 15:36

tu ouvres un fichiers csv avec la fonction fopen.
tu fais une requete a ta bdd
a chaque enregistrement, tu cree une variable qui contient tous les champs séparés par des ; et terminé par un \n.
une fgois la requete terminée, tu as ton fichier complet, tu l'envois a ton navigateur à l aide de la fonction header. par defaut, le csv va s'ouvrir avec excel si le client l'a installé sur sa machine


e-kiwi
Modérateur
Modérateur
 
Messages: 13854
Inscription: Mar Déc 23, 2003 9:04

Message le Mer Aoû 16, 2006 15:37

la methode de tom à l air encore plus rapide ;)


blman
WRInaute accro
WRInaute accro
 
Messages: 2915
Inscription: Ven Sep 05, 2003 10:46

Message le Mer Aoû 16, 2006 17:07

On pense pas assez souvent à SYLK :
http://www.phpinfo.net/page/archives/sc ... k/#sources


sim100
WRInaute accro
WRInaute accro
 
Messages: 1280
Inscription: Dim Fév 02, 2003 18:45

ok

Message le Mer Aoû 16, 2006 17:27

Merci blman, mais je passe comment après à mon fichier excel?

Car avec le script, ça m'affiche dans mon navigateur un truc comme

Code: Tout sélectionner
ID;PASTUCES-phpInfo.net P;PGeneral P;P#,##0.00 P;P#,##0 P;P@ P;EArial;M200 P;EArial;M200 P;EArial;M200 P;FArial;M200;SB B;Y13;X2 F;W1 1 5 F;W2 2 20 F;W3 256 8 F;SDM4;FG0C;Y1;X1 C;N;K"N°" F;SDM4;FG0C;X2 C;N;K"Rubrique" F;P3;FG0R;Y2;X1 C;N;K"yukuil" F;P3;FG0L;X2 C;N;K"nyukn" F;P3;FG0R;Y3;X1 C;N;K"vert" F;P3;FG0L;X2 C;N;K"zetzet" F;P3;FG0R;Y4;X1 C;N;K"vzertbert" F;P3;FG0L;X2 C;N;K"vzer" F;P3;FG0R;Y5;X1 C;N;K"tyht" F;P3;FG0L;X2 C;N;K"yjhtykj" F;P3;FG0R;Y6;X1 C;N;K"evse" F;P3;FG0L;X2 C;N;K"vtret" F;P3;FG0R;Y7;X1 C;N;K"tyj" F;P3;FG0L;X2 C;N;K"tyj" F;P3;FG0R;Y8;X1 C;N;K"dfhfh" F;P3;FG0L;X2 C;N;K"fjhgj" F;P3;FG0R;Y9;X1 C;N;K"dfh" F;P3;FG0L;X2 C;N;K"fgjhfgj" F;P3;FG0R;Y10;X1 C;N;K"test" F;P3;FG0L;X2 C;N;K"test" F;P3;FG0R;Y11;X1 C;N;K"zvery" F;P3;FG0L;X2 C;N;K"zbtr" F;P3;FG0R;Y12;X1 C;N;K"ertert" F;P3;FG0L;X2 C;N;K"erte" F;P3;FG0R;Y13;X1 C;N;K"test sdgfouihsd fosiuhdf ozuief zpfiçu z" F;P3;FG0L;X2 C;N;K"test dsflk,nzegf sdpfoj s^pdofpso s$dp)fgo spdogipsdfi sôdifg" E


Et après?

Merci


blman
WRInaute accro
WRInaute accro
 
Messages: 2915
Inscription: Ven Sep 05, 2003 10:46

Message le Mer Aoû 16, 2006 17:47

Tu dois avoir une erreur de code (ça pardonne pas avec SYLK !).
Une fois enregistré, ton fichier, tu l'ouvre tout simplement dans Excel. Il y a même l'icone Excel sous Windows, tu double-clic tout simplement dessus.
Dernière édition par blman le Mer Aoû 16, 2006 17:49, édité 1 fois.


sim100
WRInaute accro
WRInaute accro
 
Messages: 1280
Inscription: Dim Fév 02, 2003 18:45

oui

Message le Mer Aoû 16, 2006 17:49

Oui, j'ai mis, comme dans le script


blman
WRInaute accro
WRInaute accro
 
Messages: 2915
Inscription: Ven Sep 05, 2003 10:46

Message le Mer Aoû 16, 2006 17:56

Code: Tout sélectionner
$champs = Array(
      //     champ       en-tête     format         align  width
      Array( 'code',     'N°',       FORMAT_ENTIER, 'R',     5 ),
      Array( 'rubrique', 'Rubrique', FORMAT_TEXTE,  'L',    20 ),
      Array( 'titre',    'Astuce',   FORMAT_TEXTE,  'L',    70 ),
      Array( 'auteur',   'Auteur',   FORMAT_TEXTE,  'C',    20 )
    );


Ca, c'est assez important, de mémoire. Si tu veux pas te tromper, met tout en FORMAT_TEXTE au début pour tester. Gère bien aussi les longueurs...


sim100
WRInaute accro
WRInaute accro
 
Messages: 1280
Inscription: Dim Fév 02, 2003 18:45

ok

Message le Mer Aoû 16, 2006 17:58

OK, ca marche.
Le problème c'est que dans ma base de données, j'ai des champs textes avec des retours à la ligne.
Donc dans le ficier excel il va m'afficher que la 1er ligne de ces champs texte :cry:

Par exemple dans ma base de données j'ai un champs
Code: Tout sélectionner
test
test1
test2
test3


dans mon excel il m'affiche pour ce champs que "test"

Une solution?

Merci


blman
WRInaute accro
WRInaute accro
 
Messages: 2915
Inscription: Ven Sep 05, 2003 10:46

Message le Mer Aoû 16, 2006 19:10

Je n'ais pas de test sous la main mais si tu met ton entête en FORMAT_TEXTE et que tu retrouve le code qui correspond à un retour de ligne, tu dois pouvoir t'en sortir.

Pour info, dans Excel, pour rechercher un retour de ligne, il faut taper 0010 (ou 0013) en tenant la touche ALT enfoncée (dans le champ de recherche bien sûr). Peut-être que ça peut te donner une piste...


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités