Qu'est-ce que PhpSpreadsheet et pourquoi en avez-vous besoin ?
PhpSpreadsheet est une puissante bibliothèque PHP pour travailler avec des feuilles de calcul. Elle permet de lire, écrire et éditer des fichiers aux formats CSV, XLS, XLSX, ODS et autres. Contrairement aux fonctions PHP intégrées (par exemple, fgetcsv), PhpSpreadsheet offre une approche orientée objet, un traitement automatique des encodages, la prise en charge des styles, des formules et de grands volumes de données. La bibliothèque est idéale pour l'import/export de données depuis des formulaires web, la génération de rapports, la migration entre bases de données et l'intégration avec Excel/Google Sheets.
Installation
L'installation se fait via Composer :
composer require phpoffice/phpspreadsheetAprès l'installation, incluez l'autoloader :
require 'vendor/autoload.php';Fonctionnalités principales
- Lecture CSV — chargement d'un fichier dans un objet Spreadsheet avec détection automatique du délimiteur.
- Écriture CSV — création et sauvegarde d'un fichier avec configuration du délimiteur, des guillemets et du BOM.
- Gestion des feuilles — création, suppression, renommage et copie de feuilles.
- Formatage — styles de cellules (polices, couleurs, bordures, alignement).
- Formules et fonctions — prise en charge de SUM, AVERAGE, IF et autres.
- Traitement de grandes données — écriture en flux via Xlsx Writer pour réduire la consommation mémoire.
Exemple de code : lecture et écriture CSV
Lecture d'un fichier CSV et affichage des données :
use PhpOffice\\PhpSpreadsheet\\IOFactory;
$inputFileName = './data.csv';$spreadsheet = IOFactory::load($inputFileName);$worksheet = $spreadsheet->getActiveSheet();$data = $worksheet->toArray();
foreach ($data as $row) { echo implode(', ', $row) . "";}Écriture de données en CSV :
use PhpOffice\\PhpSpreadsheet\\Spreadsheet;use PhpOffice\\PhpSpreadsheet\\Writer\\Csv;
$spreadsheet = new Spreadsheet();$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Nom');$sheet->setCellValue('B1', 'Email');$sheet->setCellValue('A2', 'Ivan');$sheet->setCellValue('B2', 'ivan@example.com');
$writer = new Csv($spreadsheet);$writer->setDelimiter(';');$writer->setEnclosure('"');$writer->save('./output.csv');Quand l'utiliser
PhpSpreadsheet est recommandé dans les cas suivants :
- Vous avez besoin de prendre en charge plusieurs formats (CSV, XLSX, ODS) dans un même projet.
- Un formatage précis est requis (couleurs, polices, fusion de cellules).
- Vous devez travailler avec des formules ou de grands ensembles de données (plus de 10 000 lignes).
- Vous préférez un style POO et ne voulez pas écrire de parseurs de bas niveau.
Pour des tâches simples (par exemple, lire un seul CSV avec une structure connue), les fonctions PHP intégrées peuvent suffire. Mais si le projet grandit et nécessite de la flexibilité, PhpSpreadsheet deviendra un outil indispensable.
Aussi dans la bibliothèque
Validation des données en Swift (iOS/macOS) : outils et pratique
Files d'attente de tâches dans Node.js : Bull, Bee-Queue et Kue
SwiftyJSON pour Swift : guide complet avec exemples
Travailler avec XML en C# (.NET) : Guide complet