Page 1 sur 1

Export en xls

Posté : 17 janv. 2011, 11:38
par Ariochs
Bonjour,

J'aimerais réaliser une exportation d'un test sur un document .xls . Après quelques recherches sur internet et des tests (tous échoués :( ) je viens vous demander conseil.

Voilà mon code actuel :
<?php
		
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=test.xls");


//Connexion au serveur de bdd
mysql_connect("localhost", "bb", "cc") or die("Problème connexion serveur");		
// Connexion à la BDD
mysql_select_db("aa") or die("Problème connexion BDD");
	
$sql = "SELECT * FROM test WHERE ec='av' AND clo='1a' AND testa='1' AND testb='1' ORDER BY nom ASC";
$enreg = mysql_query($sql)

$tbl= " <table border='0' cellpadding='0' cellspacing='0'>
<tr bgcolor='#CCCCCC' height='40px'>
<td>Nom</td>
<td>Prénom</td>
<td>Mail</td>
<td>Compréhension</td>
<td>Ecrit</td>
</tr>";
while ($data = mysql_fetch_array($enreg))
{

$nom = $data['nom'];
$prenom = $data['prenom'];
$mail = $data['mail'];
$comprehension = $data['aq01'] + $data['aq02'];  // je dois faire une addition des colonnes de ma BDD à ce niveau par rapports aux réponses que j'ai eu
$ecrit = $data['bq01'] + $data['bq02']; // pareil

$tbl = $tbl . "<tr>";
$tbl = $tbl . "<td>" . $nom . "</td>";
$tbl = $tbl . "<td>" . $prenom . "</td>";
$tbl = $tbl . "<td>" . $mail . "</td>";
$tbl = $tbl . "<td>" . $comprehension . "</td>";
$tbl = $tbl . "<td>" . $ecrit . "</td>";
$tbl = $tbl . "</tr>";
}
$tbl = $tbl . "</table>";

print ($tbl);
exit;
?>
Pouvez vous m'aider s'il vous plait ?

PS : Actuellement ce code me sors qu'une page blanche

Re: Export en xls

Posté : 17 janv. 2011, 11:40
par stealth35
commente les headers et tu verras

Re: Export en xls

Posté : 17 janv. 2011, 11:44
par Ariochs
Bonjour Stealth et merci de ta réponse aussi rapide.

Quand tu me dis : "commente les headers" c'est mettre "//" devant ?

Si oui ça ne change rien

Re: Export en xls

Posté : 17 janv. 2011, 11:45
par xTG
J'avais lu à une époque tout un tas d'articles pour générer des fichiers excel mais c'est la première fois que je vois des balises html intervenir dans le code.
J'ai retrouvé cela dans mes favoris si cela peut t'aider, c'est une autre méthode mais qui est complètement expliquée et qui est multi-plateforme : mysql vers excel via php et sylk

Re: Export en xls

Posté : 17 janv. 2011, 11:48
par stealth35
Bonjour Stealth et merci de ta réponse aussi rapide.

Quand tu me dis : "commente les headers" c'est mettre "//" devant ?

Si oui ça ne change rien
faut activer les erreur de php : error_reporting(-1) et ini_set('display_errors', true)
mais déjà regarde y'a du html dans ton fichier...

Re: Export en xls

Posté : 17 janv. 2011, 11:49
par Ariochs
En fait j'ai des balises HTML car j'ai repris mon code qui me permettais d'afficher ce que je voulais dans une page HTML, mais on me demande de l'avoir sur excel (forcement ce que je sais faire on n'en veux pas, et ce que je n'arrive pas à faire on me le demande :( )

[EDIT] : J'ai mis
error_reporting(-1);
ini_set('display_errors', true);
entre "print ($tbl);" et "exit;" mais ça ne m'affiche rien. Est ce mal placé ?

Pour ce qui est du HTML, il ne doit pas y en avoir ?

Re: Export en xls

Posté : 17 janv. 2011, 12:00
par stealth35
En fait j'ai des balises HTML car j'ai repris mon code qui me permettais d'afficher ce que je voulais dans une page HTML, mais on me demande de l'avoir sur excel (forcement ce que je sais faire on n'en veux pas, et ce que je n'arrive pas à faire on me le demande :( )

[EDIT] : J'ai mis
error_reporting(-1);
ini_set('display_errors', true);
entre "print ($tbl);" et "exit;" mais ça ne m'affiche rien. Est ce mal placé ?

Pour ce qui est du HTML, il ne doit pas y en avoir ?
il faut faire un format CSV, regarde du coté de fputcsv

Re: Export en xls

Posté : 17 janv. 2011, 12:07
par Ariochs
Ne vous moquez pas mais l'erreur venait d'un oublie de ";" à la ligne : "$enreg = mysql_query($sql)"

Et il faut enlever les // au niveau des headers. Maintenant j'ai bien mon fichier xls.

Je vous remercie de votre aide et de votre réactivité.