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..??
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..??
J'ai déja visité la page officiel mais on 'explique pas comment faire avec une base de données..
peut-être parce que chaque structure de base est différente
c'est à toi de faire la conversion...
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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"; ?>
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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(); ?>
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Excusez moi, je viens de trouver mon erreur
C'est:
et non
Code : Sélectionner tout - Visualiser dans une fenêtre à part setColor
Code : Sélectionner tout - Visualiser dans une fenêtre à part set_Color
@+
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager