Generer une page excel avec php

Résolu
cs_cacoucatatonique Messages postés 164 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 7 octobre 2009 - 2 févr. 2006 à 14:37
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 - 3 févr. 2006 à 11:10
je suis à la recherche d'un exemple de source qui puisse me permettre
de generer un document exel avec des info qui viendrai de formulaire et
de dbb mysql!!

actuellement je suis en train de retourner internet avec google mais je trouve par grand chose!!!

est ce que quelqu'un aurrai des info sur le sujet?

merci d'avance

cacoucatatonique

17 réponses

J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 9
3 févr. 2006 à 10:37
J'aime pas trop voir un '/' tout nu dans le nom du fichier... Peut-être devrais-tu le remplacer par un '-' ou l'échaper avec un antislash '\/'.
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
2 févr. 2006 à 15:14
hello,

il existe une classe excel pour php. Une librairie. Cherche ça sur google.
Mais en général, on fait simple, on génère des fichiers CSV. Non seulement la structure est simple (champs séparés par des virgules ou point-virgules), mais en plus php fournit en standard des fonctions exprès pour : fgetcsv(), fputcsv().
0
cs_cacoucatatonique Messages postés 164 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 7 octobre 2009
2 févr. 2006 à 15:17
et une fois que ce csv est generer on peut avoir un format xml?

cacoucatatonique
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 9
2 févr. 2006 à 15:18
Salut,

Le plus simple pour générer un fichier compréhensible par Excel (et tous les autres logiciels de tabloïsation), c'est de créer un fichier au format CSV...

Koiça ?

"exemple";"de";"csv"
"c'est";"très";"simple"
"même";"pour";"le créer..."

<?php
// pour chaque ligne du CSV :
$tab = array(1,2,3,4);
$csv = '"'.implode('";"', $tab).""\r\n";

echo $csv;
// "1";"2";"3";"4"
?>

Voili-voilou
A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_cacoucatatonique Messages postés 164 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 7 octobre 2009
2 févr. 2006 à 15:19
heu je me suis trompé je voulais dire le format xsl

cacoucatatonique
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
2 févr. 2006 à 15:43
Le csv est géré par Excel. Si c'est ça ton problème. Tu ne verras pas la différence.
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
2 févr. 2006 à 16:08
jette un oeil sur ce lien, je me suis débrouillé avec le script qui se trouve sur la page

www.phpinfo.net/articles/article_sylk.html
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 9
2 févr. 2006 à 16:28
SYLK !?!

Je ne connaissais pas.
C'est très intéressant et l'article est bien fait...

Merci sidf
0
cs_cacoucatatonique Messages postés 164 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 7 octobre 2009
3 févr. 2006 à 09:53
j'ai trouvé, pour ce qui ca interesse un autre moyen qui fonctionne:

$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;
}


//ecriture
fputs($myfile,"categorie\t designation\t reference\t marque\t unite de vente\t seuil\t stock\t info\n $temp3\t $prod\t $temp1\t $temp4\t $temp5\t $seuil\t $quant\t $temp6\n "); //la je rentre mes données
//on insère une tabulation \t pour changer de colonne et un retour chariot \n pour changer de ligne



//fermeture fichier
fclose($myfile); //on ferme le fichier
echo "La table a été sauvegardée...";


$date = date("d/m");


//$file_copy = ($date.'commentaires.xls');


//echo"$file_copy";


//$handle = fopen ($file_copy, "w");


//copy($file, $file_copy);
//fclose($handle);


//unlink ($file);


bon il est vrai qu'il faut un fichier de démarage, parcontre j'ai un probleme, la partie de copie du fichie sous un autre nom me fait tous planter et il me supprime le fichier de base, est ce que quelqu'un peut jeter un oeuil sur le code ci dessus pour m'eclairer sur ce bug!!!!!!
merci d'avance

cacoucatatonique
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 9
3 févr. 2006 à 10:22
Salut...

Ok pour le xsl

concernant la copie, pourquoi ouvrir le fichier avant de le créer ?

//$handle = fopen ($file_copy, "w");
copy($file, $file_copy); // c'est tout !
//fclose($handle);

A+
0
cs_cacoucatatonique Messages postés 164 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 7 octobre 2009
3 févr. 2006 à 10:31
j'ai comme tu m'a dit et j'ai obtenue cette reponse, quant pense tu?

Warning: copy(03/02commentaires.xls): failed to open stream: No such file or directory in c:\program files\easyphp1-7\www\chimie\stockdispo\excel.php on line 73

cacoucatatonique
0
cs_cacoucatatonique Messages postés 164 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 7 octobre 2009
3 févr. 2006 à 10:36
voila mon source complet, alors l'ecriture dans le fichie xls fonctionne parfaitement, mais la copie meme avec ce que J_G il m'envoi le message d'erreur ci-dessus
<html>


<head>
<title></title>
</head>




<?php


$connexion = mysql_connect("localhost","root","")
or die ("probleme de connection");
$db = mysql_select_db("chimie",$connexion)
or die ("probleme de selection de base de donnée");


$prod=$_POST['prod'];


$req="SELECT quant,temp1,seuil,temp3,temp4,temp5,temp6 FROM stock WHERE prod='$prod'" ;
$query = mysql_query($req);
$data = mysql_fetch_array($query, MYSQL_ASSOC);



$quant=$data['quant'];
$temp1=$data['temp1'];
$seuil=$data['seuil'];
$temp3=$data['temp3'];
$temp4=$data['temp4'];
$temp5=$data['temp5'];
$temp6=$data['temp6'];


if ($temp3=="Ré")
{$temp3="Réactifs";}
if ($temp3=="Co")
{$temp3="Consommables";}
if ($temp3=="Pi")
{$temp3="Pièces détachées";}


echo "$temp3... $prod... $temp1.... $temp4.... $temp5.... $seuil.... $quant.... $temp6....";


$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;
}


//ecriture
fputs($myfile,"categorie\t designation\t reference\t marque\t unite de vente\t seuil\t stock\t info\n $temp3\t $prod\t $temp1\t $temp4\t $temp5\t $seuil\t $quant\t $temp6\n ");
//on insère une tabulation \t pour changer de colonne et un retour chariot \n pour changer de ligne


//fermeture fichier
fclose($myfile);
echo "La table a été sauvegardée...";


$date = date("d/m");
$file = ('commentaires.xls');
$file_copy = ($date.'commentaires.xls');


copy($file,$file_copy);


mysql_close();


?>




</html>

cacoucatatonique
0
cs_cacoucatatonique Messages postés 164 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 7 octobre 2009
3 févr. 2006 à 10:41
et bien c'est beete mais ta reson jai viré le / et ca fonctionne au car de tours

cacoucatatonique
0
cs_cacoucatatonique Messages postés 164 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 7 octobre 2009
3 févr. 2006 à 10:53
parcontre est ce que je peux tembeter encore un peut?
c'est pour savoir comment je peux faire pour faire executer mon fichier xls par php , faire comme si je l'avai ouvert avec excel!!!

cacoucatatonique
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 9
3 févr. 2006 à 10:58
Euh.... Aie !

Pourquoi faire comme-ci, ouvre le avec excel. Ca fait trois jours que tu t'acharne à faire une fichier.xsl... Pour ensuite ne pas l'ouvrir avec excel !?!

Je ne comprend pas, désolé.
0
cs_cacoucatatonique Messages postés 164 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 7 octobre 2009
3 févr. 2006 à 11:01
parceque le fichier xls va etre sur un serveur, et moi je voudrai l'ouvrir à distance depuis un reseau intranet

cacoucatatonique
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 9
3 févr. 2006 à 11:10
Propose le en téléchargement...

La personne choisira "ouvrir" ou "enregistrer".

<?php
// y'a pas plus simple...
$file = 'file.xsl';
header('Content-type: application/excel');
header('Content-Disposition: attachment; filename="'.$file.'"');
readfile($file);
exit;
?>
0