Page 1 sur 1

export vers excel

Posté : 10 oct. 2005, 12:28
par ruly
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...

Posté : 10 oct. 2005, 12:50
par Elie
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 !

Posté : 10 oct. 2005, 12:52
par heddicmi
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...

Posté : 10 oct. 2005, 12:58
par sadeq
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

Posté : 10 oct. 2005, 16:15
par ruly
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

Posté : 14 oct. 2005, 11:31
par ruly
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

Posté : 04 nov. 2005, 12:29
par ruly not log
et y a t il un moyen de mettre en forme mon ficher excel... comme emttre un logo et dimensioner les colonnes????

Posté : 04 nov. 2005, 12:48
par mere-teresa
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 ();

Posté : 04 nov. 2005, 12:59
par rami
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

Posté : 05 nov. 2005, 17:32
par Maitrepylos

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"); 

Posté : 07 nov. 2005, 10:28
par ruly not log
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:

Posté : 07 nov. 2005, 11:17
par Maitrepylos
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>