pour faire une page xls moi jutilise la methode suivante:
l'appel je le fait par un simple bouton
<?
echo "<br>sortir le récapitulatif de ce type d'article sous excel";
echo "<form action='dl_excel.php' method='POST'>
<input type='hidden' name='choix' value='Ré'>
<input type='submit' value=\"valider\"></form>";
?>
et je vais vert une page de generation de fichier xls:
<html>
<head>
<title></title>
<style type="text/css">
<!--
body {
background-color: #CCCC99;
}
-->
</style>
</head>
<body>
<?php
$connexion = mysql_connect("****","*****","*****")
or die ("probleme de connection");
$db = mysql_select_db("chimie",$connexion)
or die ("probleme de selection de base de donnée");
$choix=$_POST['choix'];
if ($choix=="Ré")
{$choix1="Réactifs";}
if ($choix=="Co")
{$choix1="Consommables";}
if ($choix=="Pi")
{$choix1="Pièces détachées";}
echo "$choix1";
$link="SELECT prod FROM mois1" ;
$result = mysql_query($link);
$num_rows = mysql_num_rows($result);
$num=$num_rows+1;
$file = ("commentaires.xls"); // le fichier doit déjà exister
if(!$myfile = fopen($file, "w")) //on ouvre le fichier
{
print("erreur: ");
print("'$filename' n'existe pas!\n");
exit;
}
fputs($myfile,"article\tjanv\tfevr\tmars\tavr\tmai\tjuin\tjuil\taoût\tsept\toct\tnov\tdec\ttotal année\n");
$t=2;
for ($i=1;$i<$num;$i++)
{
$req="SELECT prod,temp3 FROM stock WHERE ID='$i' " ;
$query = mysql_query($req);
$data = mysql_fetch_array($query, MYSQL_ASSOC);
$prod=$data['prod'];$temp3=$data['temp3'];
if ($temp3==$choix)
{
$req="SELECT janvier, fevrier, mars, avril, mai, juin, juillet, aout, septembre, octobre, novembre, decembre FROM mois1 WHERE prod='$prod'" ;
$query = mysql_query($req);
$data = mysql_fetch_array($query, MYSQL_ASSOC);
$janvier=$data['janvier'];$fevrier=$data['fevrier'];$mars=$data['mars'];$avril=$data['avril'];$mai=$data['mai'];
$juin=$data['juin'];$juillet=$data['juillet'];$aout=$data['aout'];$septembre=$data['septembre'];$octobre=$data['octobre'];$novembre=$data['novembre'];
$decembre=$data['decembre'];
//ecriture
fputs($myfile,"$prod\t$janvier\t$fevrier\t$mars\t$avril\t$mai\t$juin\t$juillet\t$aout\t$septembre\t$octobre\t$novembre\t$decembre\t=SOMME(B$t:M$t)\n ");
//on insère une tabulation \t pour changer de colonne et un retour chariot \n pour changer de ligne
$t++;
}
}
//fermeture fichier
fclose($myfile); //on ferme le fichier
echo "La table a été sauvegardée...";
$date = date("d-m");
$file = ('commentaires.xls');
$file_copy = ($date.$choix1.'.xls');
copy($file,$file_copy);
$req="UPDATE excel SET lien='$file_copy' WHERE ID='1'" ;
$resultat = mysql_query($req)
or die ("la requete ne peut etre execute flex");
mysql_close(); // 9. on ferme la connexion
header("location:$file_copy");
?>
</body>
</html>
part cette methode il ny a aucun probleme, le fichier de sortie est de la forme xls, parcontre il faut que le fichier commentaire soit deja existant!!!
cacoucatatonique
