[PHPExcel] Création de fichier
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:
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);
}
} |