Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > PEAR
PEAR Forum d'entraide sur le framework PHP : PEAR. Avant de poster -> cours PEAR.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/05/2006, 17h28   #1
Nouveau Membre du Club
 
Inscription : juin 2005
Messages : 148
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 148
Points : 26
Points : 26
Par défaut [Spreadsheet] Problème avec l'utilisation de Spreadsheet_Excel_writer

Salut tout le monde, je n'arrive pas à truver un tutorial pour comment transmettre un SELECT d'une base de données a un fichier excel en utilisant la librairie Spreadsheet_Excel_writer de PEAR..
QUelqu'un aurait-il une idée..??
sagitarium est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2006, 17h29   #2
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 774
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 774
Points : 14 303
Points : 14 303
http://pear.php.net/manual/en/packag...cel-writer.php
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2006, 17h59   #3
Nouveau Membre du Club
 
Inscription : juin 2005
Messages : 148
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 148
Points : 26
Points : 26
J'ai déja visité la page officiel mais on 'explique pas comment faire avec une base de données..
sagitarium est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2006, 18h02   #4
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 774
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 774
Points : 14 303
Points : 14 303
peut-être parce que chaque structure de base est différente

c'est à toi de faire la conversion...
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2006, 18h05   #5
Nouveau Membre du Club
 
Inscription : juin 2005
Messages : 148
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 148
Points : 26
Points : 26
Oki alors je dois me mettre au boulot!!!..
Mais dis moi j'ai trouver un type de script qui revient souvent..
un script qui utilise les headers..
mais voici les erreurs que j'obtiens..je ne vois pas comment les corriger..
Code :
1
2
3
4
5
6
7
8
9

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\questionnaire\database.php:9) in c:\program files\easyphp1-8\www\questionnaire\admini.php on line 28

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\questionnaire\database.php:9) in c:\program files\easyphp1-8\www\questionnaire\admini.php on line 29

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\questionnaire\database.php:9) in c:\program files\easyphp1-8\www\questionnaire\admini.php on line 30

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\questionnaire\database.php:9) in c:\program files\easyphp1-8\www\questionnaire\admini.php on line 31

voici le script :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
 
include('database.php');
 
$select = "SELECT * FROM utilisateur";                
$export = mysql_query($select);
$fields = mysql_num_fields($export);
//on recupere le nom de chaque colonne
for ($i = 0; $i < $fields; $i++) {
    $header .= mysql_field_name($export, $i) . "\t";
} 
//extraction des données
while($row = mysql_fetch_row($export)) {
    $line = '';
    foreach($row as $value) {                                            
        if ((!isset($value)) OR ($value == "")) {
            $value = "\t";
        } else {
            $value = str_replace('"', '""', $value);
            $value = '"' . $value . '"' . "\t";
        }
        $line .= $value;
    }
    $data .= trim($line)."\n";
}
$data = str_replace("\r","",$data);
 
header("Content-type: application/x-msdownload");
header("Content-Disposition: attachment; filename=extraction.xls");
header("Pragma: no-cache");
header("Expires: 0");
print "$header\n$data";
?>
sagitarium est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2006, 09h00   #6
Invité de passage
 
Inscription : novembre 2005
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 8
Points : 4
Points : 4
Void un petit exemple de code si ça peut t'aider, cela fait en gros la copie d'une table ds un fichier excel

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
 
	// mes parametre de connection a la bd
	include "../admin/connection.php";
 
	// je fait ma requete sur la BD
	$req = "SELECT * FROM ma_table";;
	$res = mysql_query($req);
 
	// inclusion de la librairie (il faut que ds le path de php il y est le dossier PEAR (set_include_path(get_include_path() . ";C:\wamp\php\PEAR");)
 	require_once 'Spreadsheet/Excel/Writer.php';
 
	// Création d'un manuel de travail
	$workbook = new Spreadsheet_Excel_Writer();
 
	// Envoi des en-têtes HTTP
	$workbook->send("nom_du_fichier.xls");
 
	// Création d'une feuille de travail
	$worksheet =& $workbook->addWorksheet('nom_de_la_feuil');
 
	// une mise en forme pour les titre
	$format_title =& $workbook->addFormat();
	$format_title->setBold();
	$format_title->setColor('yellow');
	$format_title->setPattern(1);
	$format_title->setFgColor('blue');
	$format_title->setAlign('center');
 
	// une mise en forme pour le contenu
	$format_data =& $workbook->addFormat();
	$format_data->setAlign('center');
	$format_data->setTextWrap();
	$format_data->setHAlign('left');
	$format_data->setVAlign('top');
 
	// nombre de colonne ds la table
	$nb = mysql_num_fields($res);
 
	// pour chaque colonne je met le titre ds la première ligne du fichié
	for($i=0;$i<$nb;$i++){
		$worksheet->write(0, $i, mysql_field_name ( $res, $i),$format_title);
		if(mysql_field_len ( $res, $i ) > 50 )
			$worksheet->setColumn ($i, $i, 50);
		else
			$worksheet->setColumn ($i, $i, 20);
	}
 
	$u=1;
	// tant qu'il y a des enregistrements
	while($data = mysql_fetch_array($res)){
		// de la première à la desnière colonne
		for($i=0;$i<$nb;$i++){
			// j'écrit mes données
			$worksheet->write( $u, $i, $data[$i], $format_data);
		}
		$u++;
	}
	mysql_close();
 
	// Envoi du fichier
	$workbook->close();
 
?>
Spy2net est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2008, 02h15   #7
Invité de passage
 
Inscription : juin 2006
Messages : 2
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 2
Points : 2
Points : 2
Citation:
Envoyé par Spy2net Voir le message
Void un petit exemple de code si ça peut t'aider, cela fait en gros la copie d'une table ds un fichier excel

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
 
	// mes parametre de connection a la bd
	include "../admin/connection.php";
 
	// je fait ma requete sur la BD
	$req = "SELECT * FROM ma_table";;
	$res = mysql_query($req);
 
	// inclusion de la librairie (il faut que ds le path de php il y est le dossier PEAR (set_include_path(get_include_path() . ";C:\wamp\php\PEAR");)
 	require_once 'Spreadsheet/Excel/Writer.php';
 
	// Création d'un manuel de travail
	$workbook = new Spreadsheet_Excel_Writer();
 
	// Envoi des en-têtes HTTP
	$workbook->send("nom_du_fichier.xls");
 
	// Création d'une feuille de travail
	$worksheet =& $workbook->addWorksheet('nom_de_la_feuil');
 
	// une mise en forme pour les titre
	$format_title =& $workbook->addFormat();
	$format_title->setBold();
	$format_title->setColor('yellow');
	$format_title->setPattern(1);
	$format_title->setFgColor('blue');
	$format_title->setAlign('center');
 
	// une mise en forme pour le contenu
	$format_data =& $workbook->addFormat();
	$format_data->setAlign('center');
	$format_data->setTextWrap();
	$format_data->setHAlign('left');
	$format_data->setVAlign('top');
 
	// nombre de colonne ds la table
	$nb = mysql_num_fields($res);
 
	// pour chaque colonne je met le titre ds la première ligne du fichié
	for($i=0;$i<$nb;$i++){
		$worksheet->write(0, $i, mysql_field_name ( $res, $i),$format_title);
		if(mysql_field_len ( $res, $i ) > 50 )
			$worksheet->setColumn ($i, $i, 50);
		else
			$worksheet->setColumn ($i, $i, 20);
	}
 
	$u=1;
	// tant qu'il y a des enregistrements
	while($data = mysql_fetch_array($res)){
		// de la première à la desnière colonne
		for($i=0;$i<$nb;$i++){
			// j'écrit mes données
			$worksheet->write( $u, $i, $data[$i], $format_data);
		}
		$u++;
	}
	mysql_close();
 
	// Envoi du fichier
	$workbook->close();
 
?>
Bonjour,

Je me permets de remercier Spy2net pour le code de création de fichier excel...il fonctionne à merveille.

@+ (un débutant en PHP).
alban.pjy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2008, 14h21   #8
Futur Membre du Club
 
Inscription : septembre 2005
Messages : 253
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 253
Points : 19
Points : 19
Salut,
Voila mon code fonctionne bien, mais dés que je veut mettre en forme ça ne marche plus:
message d'erreur:

<b>Fatal error</b>: Call to undefined function: set_row() in <b>c:\program files\easyphp\www\....php</b> on line <b>105</b><br />

Voila mon bout de code:


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
set_time_limit(10);	
     require_once 'Spreadsheet/Excel/Writer.php';
     // CREATION FICHIER     
 
	$workbook = new Spreadsheet_Excel_Writer();
	$workbook->send('test.xls');
	$worksheet = $workbook->addWorksheet('FDMexport');
        $worksheet->hidegridLines();
 
     //FORMAT ECRITURE 
        //format ligne
        $worksheet->set_row(1, 20);
        //format1
        $border1 =$workbook->addformat();  
        $border1->set_color("white");        
 
     //ECRITURE DE LA PAGE
 
        $worksheet->write(11 ,7 , "OT:");
        $worksheet->write(11 ,8 , "$ot", $border1);
        $worksheet->write(12 ,7 , "SR:");                        
 
 
 
 
	$workbook->close();
	$workbook->sendFile();

Merci d'avance pour vos réponses
fthem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2008, 15h52   #9
Futur Membre du Club
 
Inscription : septembre 2005
Messages : 253
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 253
Points : 19
Points : 19
Excusez moi, je viens de trouver mon erreur
C'est:
et non

@+
fthem est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h40.


 
 
 
 
Partenaires

Hébergement Web