Bonjour,
Je voudrai bien utiliser MaitrePylosExcel.php, mais je n'arrive pas à régler un problème.
Lorsque j'exécute le script, tout a l'air de bien se passer, mais le fichier Tableur ne se génère pas. Il n'est pas inscrit sur le DD serveur, ni ouvert par Excel, bref il n'existe pas.
Si je crée un script moi-même, tout fonctionne pourtant bien.
J'ai bien PHPExcel dans le même répertoire.
En script d'essai qui marche bien j'utilise :
Classes/PHPExcel/Writer/Excel2007.php
header('Content-type.....') et
header(Content-Disposition.....') identiques à ceux qui sont dans MaitrePylosExcel.php ci-dessous.
Il y a un schmilblick dans le code ci-dessous, mais je ne trouve pas.
Si quelqu'un a une idée, je l'en remercie par avance.
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130 /** * Classe étendue de PHPExcel. * Cette classe permet la génération dynamique * de fichier tableur suivant différent format. * @copyright 2008 MaitrePylos Technologies (Formatux.be) * @author * @license * @version Ernaelsten Gerard GPL Release: 0.1 */ <? require 'PHPExcel.php'; class MaitrePylosExcel extends PHPExcel { public function __construct() { parent::__construct(); } public function affiche($format = 'Excel5',$nomFichier = 'Tableur') { switch($format) { case 'Excel2007' : include 'PHPExcel/Writer/Excel2007.php'; //$workbook = new PHPExcel; $writer = new PHPExcel_Writer_Excel2007($this); $ext = 'xlsx'; $header = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; $writer->setPreCalculateFormulas(false); break; case 'Excel2003' : include 'PHPExcel/Writer/Excel2007.php'; $writer = new PHPExcel_Writer_Excel2007($this); $writer->setOffice2003Compatibility(true); $ext = 'xlsx'; $header = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; $writer->setPreCalculateFormulas(false); break; case 'Excel5' : include 'PHPExcel/Writer/Excel5.php'; $writer = new PHPExcel_Writer_Excel5($this); $ext = 'xls'; $header = 'application/vnd.ms-excel'; break; case 'CSV' : include 'PHPExcel/Writer/CSV.php'; $writer = new PHPExcel_Writer_CSV($this); $writer->setDelimiter(",");//l'opérateur de séparation est la virgule $writer->setSheetIndex(0);//Une seule feuille possible $ext = 'csv'; $header = 'text/csv'; break; case 'PDF' : include 'PHPExcel/Writer/PDF.php'; $writer = new PHPExcel_Writer_PDF($this); $writer->setSheetIndex(0);//Une seule feuille possible $ext = 'pdf'; $header = 'application/pdf'; break; case 'HTML' : include 'PHPExcel/Writer/HTML.php'; $writer = new PHPExcel_Writer_HTML($this); $writer->setSheetIndex(0);//Une seule feuille possible $ext = 'html'; $header = 'text/html'; break; } header('Content-type:'.$header); header('Content-Disposition:inline;filename='.$nomFichier.'.'.$ext); $writer->save('php://output'); } /** * Méthode englobant une fonction switch pour le choix du format de tableur. */ public function enregistre($format = 'Excel5',$nomFichier = 'Tableur') { switch($format) { case 'Excel2007' : include 'PHPExcel/Writer/Excel2007.php'; $writer = new PHPExcel_Writer_Excel2007($this); $ext = 'xlsx'; $writer->setPreCalculateFormulas(false); break; case 'Excel2003' : include 'PHPExcel/Writer/Excel2007.php'; $writer = new PHPExcel_Writer_Excel2007($this); $writer->setOffice2003Compatibility(true); $ext = 'xlsx'; $writer->setPreCalculateFormulas(false); break; case 'Excel5' : include 'PHPExcel/Writer/Excel5.php'; $writer = new PHPExcel_Writer_Excel5($this); $ext = 'xls'; break; case 'CSV' : include 'PHPExcel/Writer/CSV.php'; $writer = new PHPExcel_Writer_CSV($this); $writer->setDelimiter(","); $writer->setSheetIndex(0); $ext = 'csv'; break; case 'PDF' : include 'PHPExcel/Writer/PDF.php'; $writer = new PHPExcel_Writer_PDF($this); $writer->setSheetIndex(0);$ext = 'pdf'; break; case 'HTML' : include 'PHPExcel/Writer/HTML.php'; $writer = new PHPExcel_Writer_HTML($this); $writer->setSheetIndex(0);$ext = 'html'; break; } $writer->save($nomFichier.'.'.$ext); } }
Partager