Créer des fichiers Excel en PHP avec PHPExcel
Il est assez simple d’écrire un fichier CSV pour être lu dans excel avec fputcsv()
. Mais cette fonction à des limites. La bibliothèque PHPExcel est très rapide à prendre en main. Si elle manque de documentation claire, elle reste accessible et permet d’avoir accès à un grand nombre de fonctionnalités indispensables.
Important !
Cette bibliothèque est maintenant dépréciée. Vous pouvez utiliser à la place la bibliothèque PhpSpreadsheet (article à venir)
Installation de PHPExcel
La bibliothèque PHPExcel est à télécharger sur Github.
Inclure la bibliothèque à votre script :
Instanciez l’objet PHPExcel :
Renseignez les propriétés du document :
Activez votre feuille de calcul :
Comment ajouter des valeurs à ma feuille Excel ?
Vous avez le choix entre 2 façons de cibler votre cellule :
- Soit en ciblant la cellule par son emplacement de type ‘B1’
[pastacode lang= »php » manual= »%24feuille-%3EsetCellValue(‘B1’%2C’Ma%20valeur’)%3B » message= » » highlight= » » provider= »manual »/] - Soit en ciblant directement la ligne et la colonne souhaitée. Notez que dans ce cas, les lignes commencent à 0 (zéro) et les colonnes à 1.
[pastacode lang= »php » manual= »%24feuille-%3EsetCellValueByColumnAndRow(1%2C%202%2C%20’Ma%20valeur’)%3B » message= » » highlight= » » provider= »manual »/]
Comment créer un fichier Excel à partir d’un tableau en PHP ?
Prenons par exemple ce tableau tout simple, composé d’un header de 4 colonnes et de 3 lignes de données. Ce tableau peut évidemment provenir de votre base de donnée, bref, de n’importe où à condition qu’il soit bien encodé en UTF-8.
On s’économise quelques boucles, car PHPExcel va s’occuper de gérer notre tableau avec la fonction fromArray()
qui attend 4 paramètres dont les 3 premiers sont obligatoires :
- $source (array) le tableau contenant les données,
- $nullValue (mixed) la valeur en cas de cellule vide
- $startCell (string) l’emplacement sur lequel démarrer l’insertion de nos données.
- $strictNullComparison (bool) Applique une comparaison stricte en cas de cellule vide
Comment enregistrer mon fichier excel ?
Vous pouvez enregistrer le fichier dans un répertoire de votre serveur, ou bien le forcer à se télécharger après génération.
Enregistrer le fichier excel :
Ou télécharger le fichier excel automatiquement après génération :
Comment modifier la largeur d’une cellule ou d’une colonne ?
Vous pouvez régler la largeur d’une cellule de cette manière :
Comment modifier l’apparence des cellules ?
Vous pouvez également agir sur le style, les bordures, le background et le format des données de vos cellules grâce à getStyle()
. Vous pouvez cibler une cellule en particulier (‘D’) ou plusieurs cellules comme dans l’exemple suivant.
Cet exemple est complet, vous n’avez qu’à ajouter les personnalisations qui vous intéressent :
A noter que vous pouvez définir le style par défaut de toute votre feuille comme ceci :
Si cet article vous a aidé, si vous avez des questions ou des améliorations à proposer, n'hésitez pas à me laisser un commentaire en bas de page !