Exporter des données php sql vers excel
Fermé
kyuubi6
-
11 août 2010 à 16:35
kenzi rafik Messages postés 4 Date d'inscription lundi 24 décembre 2012 Statut Membre Dernière intervention 30 décembre 2012 - 30 déc. 2012 à 14:47
kenzi rafik Messages postés 4 Date d'inscription lundi 24 décembre 2012 Statut Membre Dernière intervention 30 décembre 2012 - 30 déc. 2012 à 14:47
A voir également:
- Exporter des données php sql vers excel
- Liste déroulante excel - Guide
- Si et excel - Guide
- Trier des données excel - Guide
- Comment exporter les photos de google photo vers l'ordinateur - Guide
- Word et excel gratuit - Guide
14 réponses
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
11 août 2010 à 16:57
11 août 2010 à 16:57
salut . Le format excel sera difficile a gerer.
en revanche, le format csv est compri par exel, et très facile a mettre en oeuvre:
c'est une fichier texte (ca c'est cool).
une ligne correspond à une ligne exel
les colones sont séparées par des ;
donc pour chaque ligne, tu fais
echo $nom . ";" . $prenom ...... "\r\n";
et voili voilou, un beau fichier comprit par excel
en revanche, le format csv est compri par exel, et très facile a mettre en oeuvre:
c'est une fichier texte (ca c'est cool).
une ligne correspond à une ligne exel
les colones sont séparées par des ;
donc pour chaque ligne, tu fais
echo $nom . ";" . $prenom ...... "\r\n";
et voili voilou, un beau fichier comprit par excel
merci mais je fais comment pour dire que c'est au format cvs, je mets des header speciaux? je laisse ceux la?
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
Modifié par Nabla's le 11/08/2010 à 17:19
Modifié par Nabla's le 11/08/2010 à 17:19
ca devrait passer en mettant juste le filename en .csv je pense. sinon dis moi, et on cherchera ensemble
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
11 août 2010 à 17:20
11 août 2010 à 17:20
arf, en fait:
https://www.commentcamarche.net/contents/175-standard-mime-multipurpose-internet-mail-extensions
text/csv Fichiers texte avec séparation des valeurs csv
https://www.commentcamarche.net/contents/175-standard-mime-multipurpose-internet-mail-extensions
text/csv Fichiers texte avec séparation des valeurs csv
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je viens d'essayer, quand excel s'ouvre j'ai un message ou je cliquer sur oui pour continuer, ma fois pas trop grave mais malgré que je sépare mes données par des ";" ca ne marche pas tout s'écrit l'un à la suite de l'autre... .
J'ai essayé un autre code qui fonctionne mais j'ai un soucis, le fichier excel que je crée je dois aller dans les processus arrêter execel.exe si je veux pouvoir le supprimer et j'ai une ligne dans mon code qui est sencé le supprimer ce fichier si il existe mais là j'ai une erreur.
voici mon code :
<?php
define("FILENAME","C:\wamp\www\ot/test2.xls");
if(file_exists(FILENAME))
{
unlink(FILENAME);
}
$excel=new COM("Excel.application");
$excel->sheetsinnewworkbook=1;
$excel->Workbooks->Add();
$book=$excel->Workbooks(1);
$sheet=$book->Worksheets(1);
$sheet->Name="Feuil";
$cell=$sheet->Range('A1');
$cell->EntireColumn->ColumnWidth=20;
$cell->value='Nom';
$cell->Font->bold = true;
$cell=$sheet->Range('B1');
$cell->EntireColumn->ColumnWidth=20;
$cell->value='Prenom';
$cell->Font->bold = true;
$cell=$sheet->Range('C1');
$cell->EntireColumn->ColumnWidth=30;
$cell->value='Adresse';
$cell->Font->bold = true;
$cell=$sheet->Range('D1');
$cell->EntireColumn->ColumnWidth=10;
$cell->value='CP';
$cell->Font->bold = true;
$cell=$sheet->Range('E1');
$cell->EntireColumn->ColumnWidth=20;
$cell->value='Ville';
$cell->Font->bold = true;
$cell=$sheet->Range('F1');
$cell->EntireColumn->ColumnWidth=20;
$cell->value='Numéro';
$cell->Font->bold = true;
mysql_connect('localhost','root','') ;
mysql_select_db('ot');
$select = mysql_query('select * from encodage') ;
$ligne=mysql_num_rows($select);
while($data=mysql_fetch_array($select,MYSQL_ASSOC))
{
$norep[]=$data['nom'];
$dateachat[]=$data['prenom'];
$client[]=$data['adresse'];
$adressecli[]=$data['cp'];
$typerepa[]=$data['ville'];
$serie[]=$data['pays'];
$revendeur[]=$data['numref'];
$adresserevendeur[]=$data['anneeref'];
}
for($i=2;$i<$ligne+2;$i++)
{
$cell=$sheet->Range('A'.$i);
$cell->value=$norep[$i-2];
$cell=$sheet->Range('B'.$i);
$cell->value=$dateachat[$i-2];
$cell=$sheet->Range('C'.$i);
$cell->value=$client[$i-2];
$cell=$sheet->Range('D'.$i);
$cell->value=$adressecli[$i-2];
$cell=$sheet->Range('E'.$i);
$cell->value=$typerepa[$i-2];
$cell=$sheet->Range('F'.$i);
$cell->value=$revendeur[$i-2].$adresserevendeur[$i-2];
}
$book->saveas(FILENAME);
unset($sheet);
unset($book);
?>
si quelqu'un a une idée je suis preneur.
merci d'avance et merci de m'avoir déjà aidé
J'ai essayé un autre code qui fonctionne mais j'ai un soucis, le fichier excel que je crée je dois aller dans les processus arrêter execel.exe si je veux pouvoir le supprimer et j'ai une ligne dans mon code qui est sencé le supprimer ce fichier si il existe mais là j'ai une erreur.
voici mon code :
<?php
define("FILENAME","C:\wamp\www\ot/test2.xls");
if(file_exists(FILENAME))
{
unlink(FILENAME);
}
$excel=new COM("Excel.application");
$excel->sheetsinnewworkbook=1;
$excel->Workbooks->Add();
$book=$excel->Workbooks(1);
$sheet=$book->Worksheets(1);
$sheet->Name="Feuil";
$cell=$sheet->Range('A1');
$cell->EntireColumn->ColumnWidth=20;
$cell->value='Nom';
$cell->Font->bold = true;
$cell=$sheet->Range('B1');
$cell->EntireColumn->ColumnWidth=20;
$cell->value='Prenom';
$cell->Font->bold = true;
$cell=$sheet->Range('C1');
$cell->EntireColumn->ColumnWidth=30;
$cell->value='Adresse';
$cell->Font->bold = true;
$cell=$sheet->Range('D1');
$cell->EntireColumn->ColumnWidth=10;
$cell->value='CP';
$cell->Font->bold = true;
$cell=$sheet->Range('E1');
$cell->EntireColumn->ColumnWidth=20;
$cell->value='Ville';
$cell->Font->bold = true;
$cell=$sheet->Range('F1');
$cell->EntireColumn->ColumnWidth=20;
$cell->value='Numéro';
$cell->Font->bold = true;
mysql_connect('localhost','root','') ;
mysql_select_db('ot');
$select = mysql_query('select * from encodage') ;
$ligne=mysql_num_rows($select);
while($data=mysql_fetch_array($select,MYSQL_ASSOC))
{
$norep[]=$data['nom'];
$dateachat[]=$data['prenom'];
$client[]=$data['adresse'];
$adressecli[]=$data['cp'];
$typerepa[]=$data['ville'];
$serie[]=$data['pays'];
$revendeur[]=$data['numref'];
$adresserevendeur[]=$data['anneeref'];
}
for($i=2;$i<$ligne+2;$i++)
{
$cell=$sheet->Range('A'.$i);
$cell->value=$norep[$i-2];
$cell=$sheet->Range('B'.$i);
$cell->value=$dateachat[$i-2];
$cell=$sheet->Range('C'.$i);
$cell->value=$client[$i-2];
$cell=$sheet->Range('D'.$i);
$cell->value=$adressecli[$i-2];
$cell=$sheet->Range('E'.$i);
$cell->value=$typerepa[$i-2];
$cell=$sheet->Range('F'.$i);
$cell->value=$revendeur[$i-2].$adresserevendeur[$i-2];
}
$book->saveas(FILENAME);
unset($sheet);
unset($book);
?>
si quelqu'un a une idée je suis preneur.
merci d'avance et merci de m'avoir déjà aidé
bonjour j'ai toujours le problème que il me crée un fichier excel mais si je veux supprimer ce fichier je dois aller dans les processus arreter excel.exe puis supprimer mon fichier excel créer pour pouvoir en recréer un autre, svp aidez moi
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
16 août 2010 à 15:22
16 août 2010 à 15:22
j'ai un message ou je cliquer sur oui pour continuer,=> si tu veux de l'aide là dessus, donnes nous le message!
malgré que je sépare mes données par des ";" ca ne marche pas tout s'écrit l'un à la suite de l'autreca prend pas dans des colones différentes? Attention, il faut faire des fins de lignes : chr(13) . chr(10)
comment fais tu pour les fins de lignes? j'indique chr(113) ou chr(10) peux tu me donner un exemple genre echo $nom ; chr.. car je ne comprends pas bien.
Désolé d'avoir poster trois fois mon messages j'ai fait une erreur.
Pour le code que je montre plus haut, tout fonctionne appart que comme je dis et bien je ne "tue" pas l'instancion com de excel donc mon fichier excel se crée mais je ne sais pas l'effacer. J'aimerais qu'a chaque fois que j'appel ma page qui crée mon fichier excel elle écrase l'ancien fichier
merci
Désolé d'avoir poster trois fois mon messages j'ai fait une erreur.
Pour le code que je montre plus haut, tout fonctionne appart que comme je dis et bien je ne "tue" pas l'instancion com de excel donc mon fichier excel se crée mais je ne sais pas l'effacer. J'aimerais qu'a chaque fois que j'appel ma page qui crée mon fichier excel elle écrase l'ancien fichier
merci
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
16 août 2010 à 16:06
16 août 2010 à 16:06
pour les 3 messages, j'en ai supprimé 2 ... (surtout que c'était des bons gros messages)
t'as peut etre recu un email te le disant
pour le csv , quand 'tas fini ta ligne, tu fais echo chr(13) . chr(10) ;ca devrait faire un retour à la ligne dans ton fichier
t'as peut etre recu un email te le disant
pour le csv , quand 'tas fini ta ligne, tu fais echo chr(13) . chr(10) ;ca devrait faire un retour à la ligne dans ton fichier
bonjour,
je viens de tester echo chr(13) . chr(10) ; j'ai effectivement un saut de ligne, la ou ça coince c'est que malgré mon point virgule ça ne se met pas dans des colonne différente. Voici mon code :
header("Content-type : text/csv");
header("Content-Disposition: attachment; filename=\"test.csv\"");
$bdd = new PDO('mysql:host=localhost;dbname=ot', 'root', '');
$test = $bdd->query('select * from encodage') ;
while($donnees = $test->fetch())
{
echo $donnees['nom'].";".$donnees['prenom'] ;
echo chr(13) . chr(10) ;
}
j'aimerais que le nom soit dans la colonne A et le prenom dans la B
merci
je viens de tester echo chr(13) . chr(10) ; j'ai effectivement un saut de ligne, la ou ça coince c'est que malgré mon point virgule ça ne se met pas dans des colonne différente. Voici mon code :
header("Content-type : text/csv");
header("Content-Disposition: attachment; filename=\"test.csv\"");
$bdd = new PDO('mysql:host=localhost;dbname=ot', 'root', '');
$test = $bdd->query('select * from encodage') ;
while($donnees = $test->fetch())
{
echo $donnees['nom'].";".$donnees['prenom'] ;
echo chr(13) . chr(10) ;
}
j'aimerais que le nom soit dans la colonne A et le prenom dans la B
merci
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
18 août 2010 à 17:16
18 août 2010 à 17:16
ouvres le fichier csv avec notepad, et fais moi un copier coller du contenu stp (juste un extrait)
voila ce que me donne en fichier text (enfin ouvert avec notepad)
deboyser;olivier
macors;romain
merci
deboyser;olivier
macors;romain
merci
alors apparement si j'enregistre le fichier au lieu de l'ouvrir directement avec excel ca fonctionne :)
dernier petit souci :(, je veux créer sur ma feuille excel un numéro de référence que j'importe de mes données de ma bdd, le souci est que mon num de reference est du type 1/10 par exemple ce qui fait que excel me met le 1 oct :'(.
Pour pallier à cela je met un "'" devant mon numéro mais excel me l'indique et ça c'est génant car après j'utilise mon fichier excel pour fusionner avec un word.
Je ne comprend pas car avec mon ancien code ça fonctionnait.
merci
Pour pallier à cela je met un "'" devant mon numéro mais excel me l'indique et ça c'est génant car après j'utilise mon fichier excel pour fusionner avec un word.
Je ne comprend pas car avec mon ancien code ça fonctionnait.
merci
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
20 août 2010 à 12:10
20 août 2010 à 12:10
il y a surement des parametrages dans excel que je connais pas ... je pense qu'il faudrai poser la question dans le forum bureautique
kenzi rafik
Messages postés
4
Date d'inscription
lundi 24 décembre 2012
Statut
Membre
Dernière intervention
30 décembre 2012
26 déc. 2012 à 14:44
26 déc. 2012 à 14:44
utiliser "\n"
kenzi rafik
Messages postés
4
Date d'inscription
lundi 24 décembre 2012
Statut
Membre
Dernière intervention
30 décembre 2012
30 déc. 2012 à 14:45
30 déc. 2012 à 14:45
utiliser excel .= "l'entete \n"; pour passer a la deuxieme ligne
kenzi rafik
Messages postés
4
Date d'inscription
lundi 24 décembre 2012
Statut
Membre
Dernière intervention
30 décembre 2012
30 déc. 2012 à 14:47
30 déc. 2012 à 14:47
utiliser excel .= "nom[ ] \t prenom[ ] \n"; pour passer a la deuxieme ligne