Exportation mySQL vers excel via PHP
Résolu/Fermé
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
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
A voir également:
- Excel php mysql
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Déplacer une colonne excel - Guide
- Comment calculer la moyenne sur excel - Guide
7 réponses
aynsoufiane
Messages postés
2
Date d'inscription
mardi 13 mai 2008
Statut
Membre
Dernière intervention
14 mai 2008
13 mai 2008 à 18:51
13 mai 2008 à 18:51
<?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 ;
?>
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 ;
?>
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 ; ?>
Taboujr
Messages postés
507
Date d'inscription
vendredi 18 janvier 2002
Statut
Membre
Dernière intervention
2 janvier 2008
117
7 oct. 2002 à 16:45
7 oct. 2002 à 16:45
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
Mais bon, y'a p'têt mieux...
Tabou Junior
teebo
Messages postés
33491
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
1 793
7 oct. 2002 à 16:57
7 oct. 2002 à 16:57
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"
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
teebo
Messages postés
33491
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
1 793
8 oct. 2002 à 09:49
8 oct. 2002 à 09:49
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"
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"
13 mai 2008 à 22:04
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.
14 mai 2008 à 10:28
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.
5 oct. 2009 à 15:31
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...