Exporter des données php sql vers excel
kyuubi6
-
kenzi rafik Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
kenzi rafik Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je viens de faire un petit programme en intranet (en php) pour ma société, c'est un programme d'encodage d'objet trouvé. Le soucis est que je viens d'apprendre qu'ils font des convocations avec nom, prenom, adresse, numero de reference de l'objet aux gens et pour cela ils fusionnent un fichier excel avec la convocation en word.
Je dois donc exporter des données de ma base de données dans un fichier excel.
Avec deux header :
header("Content-type : application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=\"test.xls\"");
j'arrive à créer un fichier excel et sur la page contenant ces header je fais ma requete mais ca m"µ'écrit n'importe comment dans mon fichier excel;
J'aimerais dans la colonne a le nom la b le prenom puis dans a2,a3,a4,a5... tous les noms et pour les b tous les prenoms.
quelqu'un peut il m'aider?
Je viens de faire un petit programme en intranet (en php) pour ma société, c'est un programme d'encodage d'objet trouvé. Le soucis est que je viens d'apprendre qu'ils font des convocations avec nom, prenom, adresse, numero de reference de l'objet aux gens et pour cela ils fusionnent un fichier excel avec la convocation en word.
Je dois donc exporter des données de ma base de données dans un fichier excel.
Avec deux header :
header("Content-type : application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=\"test.xls\"");
j'arrive à créer un fichier excel et sur la page contenant ces header je fais ma requete mais ca m"µ'écrit n'importe comment dans mon fichier excel;
J'aimerais dans la colonne a le nom la b le prenom puis dans a2,a3,a4,a5... tous les noms et pour les b tous les prenoms.
quelqu'un peut il m'aider?
A voir également:
- Exporter des données php sql vers excel
- Trier des données excel - Guide
- Liste déroulante excel - Guide
- Exporter favoris chrome - Guide
- Word et excel gratuit - Guide
- Comment exporter les photos de google photo vers l'ordinateur - Guide
14 réponses
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?
ca devrait passer en mettant juste le filename en .csv je pense. sinon dis moi, et on cherchera ensemble
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
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
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
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