export vers excel

Eléphant du PHP | 181 Messages

10 oct. 2005, 12:28

bonjour,

apres avoir cherche un peu sous google et sur differents forum je m'en remet a vous.
voila mon probleme: j'aimerais exporter le resultat d'une requete vers un document excel pour que l'utilisateur puisse faire son impression comme bon lui semble....

je pensais que ca allait etre simple mais apres avoir lu bcp de choses je sais plus trop comment m'y prendre.

je pensais prende un fichier stiyl: impression.csv

et inserre chaque resultat sans une nouvelle ligne.
mais ca ne m'insere que tout dans la 1ere case donc pas tres partique au final.
<?php
$sql = "select * from produit order by produit_num";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$fp =  fopen("cuisine_impression.csv","w");
$i=0;

while ($data = mysql_fetch_assoc($req)) {
	fwrite($fp,$data['produit_designation']); fwrite($fp,trim('br'));
	echo 'produit_num '.$i.' = '.$data['produit_designation'].'<br>';
	$i++;
}
fclose($fp);                  
?>
cette requete est pour faire des test mais ca ne marche deja pas bien la donc mes test servent a pas grand chose...

Mammouth du PHP | 1339 Messages

10 oct. 2005, 12:50

Utilise une class.

Code : Tout sélectionner

/* * This is the Spreadsheet::WriteExcel Perl package ported to PHP * Spreadsheet::WriteExcel was written by John McNamara, [email protected] */
Moi j'utilise celle la !
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Mammouth du PHP | 568 Messages

10 oct. 2005, 12:52

Juste pour dire qu'il existe des développements pré fait pour gérer la création d'un fichier excel directement, en déterminant la valeur à mettre pour la cellule... Je ne sais pas ce que ça peux valloir vraiment, mais tu peux te pencher dessus...
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

10 oct. 2005, 12:58

Et pourquoi ne pas voir les choses autrement ?

On sait que Excel peut importer des données de bases de données, dans ce cas, tu peut créer et mettre en forme une feuille excel liée à ta base de données Mysql (par ODBC machine) (Données > données externes > créer une requête)

En suite mettre à disposition la feuille excel sur le serveur web (par un lien Hypertexte ou dans un frame/iframe) exemple :
La page etudiants.php:
<?
if (!file_exists("etudiants.xls")) {echo "<p><b>Désolé, le fichier des étudiants est absent!</b>"; exit;}
?>
<h1>Liste des étudiants</h1>
<iframe src="etudiants.xls" width="100%" height="100%>"</iframe>
Pour démarrer automatiquemnt l'aperçu avant impression il est possible d'activer une macro autoexec dans le classeur excel :
Private Sub Workbook_Open()
ActiveWindow.SelectedSheets.PrintPreview
End Sub

NB:
cela suppose que le client dipose de l'application excel sur sa machine.
Et que la sécurité locale autorise l'exécution des macros
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 181 Messages

10 oct. 2005, 16:15

merci pour vos reponses, mias j'ai reussi sans une seule librairie... j'attaque et je fais des boucles...

mais autres question qui s'y rapporte:

y-a-t-il un moyen de forcer l'ouverture d'excel avec le fichier qui va etre cree???

donc en resume kan je demande a l'utilisateur de clicker un bouton, qu'un le bon fichier excel s'ouvre???

merci d'avance

Eléphant du PHP | 181 Messages

14 oct. 2005, 11:31

Utilise une class.

Code : Tout sélectionner

/* * This is the Spreadsheet::WriteExcel Perl package ported to PHP * Spreadsheet::WriteExcel was written by John McNamara, [email protected] */
Moi j'utilise celle la !
j'essaie de faire mon doc excel un peu plus joli... mais j'y arrvie pas avec les differentes librairies. ya tjrs un bug a quelque part....

ben moi j'arrive pas a l'utilisee.....

je comprend pas comment meme ces examples ils y a pleins d'erreurs...

toi tu la trouve simple???

t'as un tutoriel a quelque part???

merci d'avance

ps j'utilise easyphp 1.8......
php 4.3.10

ruly not log
Invité n'ayant pas de compte PHPfrance

04 nov. 2005, 12:29

et y a t il un moyen de mettre en forme mon ficher excel... comme emttre un logo et dimensioner les colonnes????

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

04 nov. 2005, 12:48

y-a-t-il un moyen de forcer l'ouverture d'excel avec le fichier qui va etre cree???

donc en resume kan je demande a l'utilisateur de clicker un bouton, qu'un le bon fichier excel s'ouvre???
Oui.
/*Télécharge/download le fichier Excel pour déclaration 
										* trouvé dans la doc http://fr2.php.net/manual/fr/function.header.php
										**/
						$urlFichier = "blabla.xls";
						$Filename = "http://".$_SERVER['HTTP_HOST'].$urlFichier;
						header("Pragma: public");
						header("Expires: 0");
						header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
						header("Content-Type: application/force-download");
						header("Content-Type: application/octet-stream");
						header("Content-Type: application/download");
						header("Content-Disposition: attachment; filename=".basename($urlFichier).";");
						header("Content-Transfer-Encoding: binary");
						//header("Content-Length: ".filesize($urlFichier));
						readfile($Filename);
						$lien = '<a href=$urlFichier.'" class="downloads">Download the sheet [.xls format]</a>';
						exit ();
Modifié en dernier par mere-teresa le 04 nov. 2005, 15:25, modifié 1 fois.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Mammouth du PHP | 983 Messages

04 nov. 2005, 12:59

J'avais un truc du genre em m'appuyant sur phpWriteExcel.
Il faudra certainement faire quelques retouches selon la configuration de ton serveur. Tu passes la requete dans l'url du script et ca génère un fichier Excel avec tes résultats ;)

http://www.phpfrance.com/forums/voir_sujet-3370.php

Mammouth du PHP | 1029 Messages

05 nov. 2005, 17:32


y-a-t-il un moyen de forcer l'ouverture d'excel avec le fichier qui va etre cree???

donc en resume kan je demande a l'utilisateur de clicker un bouton, qu'un le bon fichier excel s'ouvre???

merci d'avance
header("Content-Type: application/ms-excel"); 
L'expérience est la somme de toutes nos erreurs.

ruly not log
Invité n'ayant pas de compte PHPfrance

07 nov. 2005, 10:28

J'avais un truc du genre em m'appuyant sur phpWriteExcel.
Il faudra certainement faire quelques retouches selon la configuration de ton serveur. Tu passes la requete dans l'url du script et ca génère un fichier Excel avec tes résultats ;)

http://www.phpfrance.com/forums/voir_sujet-3370.php

comme quoi comme config??? il faut accepter qqch pour que phpwriteexcel marche???

moi ya des bug partout... meme dans leur exemple... :oops:

Mammouth du PHP | 1029 Messages

07 nov. 2005, 11:17

Bonjour, moi je fais ceci pour générer mes fichiers Excel.

Attention marche très bien avec MS-Excel, mais pour OpenOffice, il faut un autre navigateur que Firefox/Mozilla
<?php
header("content-type: application/vnd.ms-excel");

$resu = pg_query("SELECT * FROM tatable ");



while($soluce = pg_fetch_array($resu))
{
?>
<tr>
	<td  align="left"><?PHP echo $soluce[champ1]?></TD>
 	<td  align="Left"><?php echo $soluce[champ2] ?></td>	

<?php
} 
?>
</tr>
L'expérience est la somme de toutes nos erreurs.