PHPExcel est une bibliothèque pré-programmée permettant de générer un fichier Excel (.xslx) à l'aide de PHP.
▼Publicité Le texte se poursuit plus bas
Cette bibliothèque est disponible à l'adresse suivante : https://github.com/PHPOffice/PHPExcel
Pour utiliser PHPExcel, prenez connaissance de la documentation et des tutoriels suivants :
« Introduction à PHPExcel ». Développez.com. http://g-ernaelsten.developpez.com/tutoriels/excel2007/
« PHPExcel user documentation ». PHPExcel. https://github.com/PHPOffice/PHPExcel/wiki/User%20Documentation
Voici un exemple de programme PHP qui génère un chiffrier Excel à l'aide de PHPExcel.
Important : pour que la génération du chiffrier fonctionne correctement, il ne doit y avoir aucune information envoyée au navigateur (ex : aucune balise HTML, aucune ligne blanche en dehors du code PHP) ni avant, ni après la génération proprement dite.
Une structure de code intéressante consiste à afficher les données à l'écran et de les faire suivre d'un bouton qui, lui, se chargera de générer le chiffrier Excel. Les balises HTML ne seront envoyées à l'écran que si le bouton n'a pas été cliqué.
// référence à la bibliothèque de fonctions
require_once 'include/PHPExcel/PHPExcel.php';
require_once 'include/PHPExcel/PHPExcel/IOFactory.php';
if(isset($_POST['excel'])) {
// création des objets de base et initialisation des informations d'entête
$classeur = new PHPExcel;
$classeur->getProperties()->setCreator("Annie Gagnon");
$classeur->setActiveSheetIndex(0);
$feuille=$classeur->getActiveSheet();
// ajout des données dans la feuille de calcul
$feuille->setTitle('Nom affiché dans l'onglet');
$feuille->setCellValueByColumnAndRow(0, 1, 'Les colonnes débutent à 0 et les lignes débutent à 1');
$feuille->SetCellValue('A2', 'Il est aussi possible d'utiliser la notation LettreChiffre (ex : A2)');
// envoi du fichier au navigateur
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="nomfichier.xlsx"');
header('Cache-Control: max-age=0');
$writer = PHPExcel_IOFactory::createWriter($classeur, 'Excel2007');
$writer->save('php://output');
}
else {
// on envoie de l'information à l'écran seulement si le bouton de génération n'a pas été cliqué
require 'include/entete.inc.php';
// affichage des données à l'écran
...
// bouton qui permettra de générer le chiffrier Excel
echo '<form method="post" action="' . $_SERVER['SCRIPT_NAME'] . '">';
echo '<input type="submit" value="Exporter vers Excel" name="excel" />';
echo '</form>';
}
La structure de code proposée ici commencera par afficher les données à l'écran. Lorsque l'usager cliquera sur le bouton pour exporter les données vers Excel, la page demeurera affichée et le fichier généré sera téléchargé sur le poste du client.
Ce programme générera le chiffrier suivant :
Site fièrement hébergé chez A2 Hosting.