Exportation mySQL vers excel via PHP [Résolu/Fermé]

Signaler
-
 highfer -
Bonjour!

je suis à la recherche du moyen le plus efficace et le plus rapide à mettre en place pour exporter le contenu de tables MySQL vers un format compatible Excel en utilisant PHP.

On m'a parlé de SYLK, l'avez vous déjà utilisé? est-ce que c la meilleur solution??

merci beacoup pour vos réponses à venir...
@ bientot

SuD

7 réponses

Messages postés
2
Date d'inscription
mardi 13 mai 2008
Statut
Membre
Dernière intervention
14 mai 2008

<?php

header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=nom_fichier.xls");


// selectionner la base de données

mysql_select_db($database_conn, $conn);
$sql = "SELECT * FROM client";
$sql = mysql_db_query($database_conn,$sql);

$tbl= " <table border='0' cellpadding='0' cellspacing='0'>
<tr bgcolor='#CCCCCC' height='40px'>
<td>nom</td>
<td>prenom</td>
<td>email</td>
</tr>";
while ($data = mysql_fetch_array($sql))
{
$tbl = $tbl . "<tr>";
$tbl = $tbl . "<td>" . $data[nom'] . "</td>";
$tbl = $tbl . "<td>" . $data['prenom'] . "</td>";
$tbl = $tbl . "<td>" . $data['email'] . "</td>";
$tbl = $tbl . "</tr>";
}
$tbl = $tbl . "</table>";

print $tbl ;
?>
14
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Hello aynsoufiane
J'ai testé ton code. Il ne fonctionne pas. Ca serait gentil de m'aider à comprendre ce que je fais de mal.
Dans le second Header j'ai essayé de modifier sous plusieurs syntaxes le ...filename =...
Rien à faire ça me dit : Erreur IE n'as pas pu télécharger le fichier "nom de fichier.php"....

<?php
session_start();
include 'MDI_AccesClient.php';//Login + mot de passe

?>
[Head de HTML...ECT]
<?php

header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename='http://www.monsite.org/test_v1.xls'");


// selectionner la base de données

$sql = "SELECT nom, prenom, ville FROM P_MCI_180";
$sql = mysql_query($sql);

$tbl= " <table border='0' cellpadding='0' cellspacing='0'>
<tr bgcolor='#CCCCCC' height='40px'>
<td>nom</td>
<td>prenom</td>
<td>ville</td>
</tr>";
while ($data = mysql_fetch_array($sql))
{
$tbl = $tbl . "<tr>";
$tbl = $tbl . "<td>" . $data['nom'] . "</td>";
$tbl = $tbl . "<td>" . $data['prenom'] . "</td>";
$tbl = $tbl . "<td>" . $data['ville'] . "</td>";
$tbl = $tbl . "</tr>";
}
$tbl = $tbl . "</table>";

print $tbl ;
?>

Merci bcp. J'espère que tu pourras m'aider j'aimerais bien comprendre pourquoi ça ne fonctionne pas.
Messages postés
2
Date d'inscription
mardi 13 mai 2008
Statut
Membre
Dernière intervention
14 mai 2008
> Helrick
header("Content-Disposition: attachment; filename='http://www.monsite.org/test_v1.xls'");

tu donne seulement le nom de ton fichier xsl
header("Content-Disposition: attachment; filename=test_v1.xls");

le fichier sera créer dans le dossier Temporary Internet Files en suite IE te demandera si tu veux l ouvrir directement ou l'enregistrer sur un emplacement de ton choix.
Bonjour,

j'ai utilisé le premier code donné par aynsoufiane, qui fonctionne très bien d'ailleurs, sauf exception pour les FLOAT. Je ne sais pas pourquoi, l'exportation se passe bien, mais quand j'exporte un tableau contenant des float les cases du champs restent vides...
J'ai oublié de vous joindre le code :x
<?php require_once('connexion.php'); ?>
<?php

header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=nom_fichier.xls");


// selectionner la base de données

$sql = "SELECT agent, date, etat FROM presence";
$sql = mysql_db_query($sql, $dbprotect);

$tbl= " <table border='0' cellpadding='0' cellspacing='0'>
<tr bgcolor='#CCCCCC' height='40px'>
<td>agent</td>
<td>date</td>
<td>etat</td>
</tr>";
while ($data = mysql_fetch_array($sql))
{
$tbl = $tbl . "<tr>";
$tbl = $tbl . "<td>" . $data['agent'] . "</td>";
$tbl = $tbl . "<td>" . $data['date'] . "</td>";
$tbl = $tbl . "<td>" . $data['etat'] . "</td>";
$tbl = $tbl . "</tr>";
}
$tbl = $tbl . "</table>";

print $tbl ;

?>
Messages postés
507
Date d'inscription
vendredi 18 janvier 2002
Statut
Membre
Dernière intervention
2 janvier 2008
113
Personnellement, j'exporte les données de mes bdds mysql dans un fichier texte que j'ouvre avec Excel. Si les champs sont bien toujours séparés par un séparateur unique dans tous le fichier, et que chaque donnée est écrite sur une ligne, ça marche du feu de dieu !!
Mais bon, y'a p'têt mieux...

Tabou Junior
Messages postés
33478
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
1 738
Je crois que Tabou a la fonction la plus simple... :-D
Si apres tu veux automatise ca, tu peux aussir regarder du cote des scripts XSLT et je pense Python mais je connais pas...

Mais frnachement, export en texte puis ouverture dans Excel, c'est le plus rapide!!!

ö,ö  "Il est plus facile de donner des conseils
\_/    que de les appliquer"
Salut !

oui j'avais bien pensé à cette solution mais le problème c que le fichier que l'on doit ouvrir avec excel à pour but d'etre téléchargé par le visiteur (visiteur le plus souvent débutant en informatique). Je voudrais donc que le fichier qui est généré, lorsque l'on double clique dessus, soit automatiquement associé à MS Excel, et porte donc l'icone Excel. De plus, si l'on utilise une méthode avec un fichier texte, les champs de type entier ou double ne seraient pas reconnu en tant que tel dans Excel et ne permettrait pas à l'utilisateur de faire ensuite ses propres calculs (ce qui est le but de l'opération)...

Voilà, merci Taboo et teebo pour votre aide et merci aux autres pour les réponses à venir...

SuD
Messages postés
33478
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
1 738
OK, bon tu peux chercher si il existe des scipts XSLT existant permettant ca (vraisemblablement avec parametrage a la main pour le cas precis, mais le gros du boulot serait fait)
Autre solution, Python, mais notre reference en la matiere n'est pas la en ce moment...Sebsauvage, t'es ou!!!

Sinon, en PHP :-( A la limite, en asp tu aurais plus de chance (standard Microsoft, comme Excel...)

Bonne chance

ö,ö  "Il est plus facile de donner des conseils
\_/    que de les appliquer"
Oki

merci beaucoup pour ton aide Teebo, je vais chercher dans le sens XSLT... ASP n'est pas supporté par l'hébergement de mon client :-(

voili

@ bientot

SuD
Merci soufiane!
Bonjour,

As tu trouvé la solution ?
Moi j'ai créé une page d'enregistrement d'adresses mails.
Je veux récupérer ces mails dans un fichier excel directement à partir de ma page web (sans passer par mysql). Pour ça je veux mettre un bouton télécharger le fichier.

Là je suis perdu.