Travailler avec Excel en C# (.NET) : guide détaillé sur EPPlus et ClosedXML
Dans le développement moderne sur la plateforme .NET, il est souvent nécessaire de créer, lire et modifier des feuilles de calcul Excel par programmation. Cela peut concerner la génération de rapports, l'importation de données depuis des bases de données, l'exportation de statistiques ou l'automatisation de processus métier. Dans cet article, nous examinerons les deux bibliothèques les plus populaires et les plus puissantes pour travailler avec Excel en C# : EPPlus et ClosedXML. Ces deux bibliothèques fonctionnent avec le format Open XML (XLSX) et ne nécessitent pas l'installation de Microsoft Office.
Pourquoi utiliser des bibliothèques pour Excel ?
La création manuelle de fichiers XML pour le format XLSX est extrêmement laborieuse et sujette aux erreurs. Des bibliothèques telles que EPPlus et ClosedXML fournissent une API de haut niveau qui masque toute la complexité du travail avec Open XML. Elles permettent de :
- Créer des fichiers Excel à partir de zéro avec un contrôle total sur le formatage.
- Lire des données à partir de tableaux existants avec prise en charge de différents types de cellules.
- Modifier des cellules, des lignes, des colonnes et des feuilles.
- Appliquer des styles, des polices, des couleurs, des bordures et du formatage conditionnel.
- Travailler avec des formules, des tableaux croisés dynamiques et des graphiques.
- Exporter des données au format PDF (disponible dans la version payante d'EPPlus).
Bibliothèque EPPlus
EPPlus est l'une des bibliothèques les plus anciennes et les plus fonctionnelles pour travailler avec Excel en .NET. Elle prend en charge toutes les principales fonctionnalités du format XLSX, y compris les graphiques, les tableaux croisés dynamiques, le formatage conditionnel et les macros VBA. Depuis la version 5, EPPlus est passé à un modèle de licence LGPL avec des restrictions supplémentaires pour une utilisation commerciale (gratuit pour les projets dont le revenu est inférieur à 1 million de dollars par an).
Installation d'EPPlus
Vous pouvez installer la bibliothèque via le gestionnaire de packages NuGet :
Install-Package EPPlusOu via l'interface CLI .NET :
dotnet add package EPPlusExemple : création d'un fichier Excel simple avec EPPlus
Le code suivant illustre la création d'un fichier Excel avec des en-têtes et des données, ainsi que l'application d'un formatage de base :
using OfficeOpenXml;using OfficeOpenXml.Style;using System.Drawing;
public void CreateExcelWithEPPlus(){ // Définition du contexte de licence (obligatoire pour EPPlus 5+) ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
using (var package = new ExcelPackage()) { // Ajout d'une nouvelle feuille var worksheet = package.Workbook.Worksheets.Add("Employés");
// En-têtes worksheet.Cells[1, 1].Value = "Nom"; worksheet.Cells[1, 2].Value = "Poste"; worksheet.Cells[1, 3].Value = "Salaire";
// Style des en-têtes using (var range = worksheet.Cells[1, 1, 1, 3]) { range.Style.Font.Bold = true; range.Style.Fill.PatternType = ExcelFillStyle.Solid; range.Style.Fill.BackgroundColor.SetColor(Color.LightBlue); range.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; }
// Données worksheet.Cells[2, 1].Value = "Ivan Ivanov"; worksheet.Cells[2, 2].Value = "Développeur"; worksheet.Cells[2, 3].Value = 150000;
worksheet.Cells[3, 1].Value = "Maria Petrova"; worksheet.Cells[3, 2].Value = "Analyste"; worksheet.Cells[3, 3].Value = 120000;
// Formatage des nombres worksheet.Cells[2, 3, 3, 3].Style.Numberformat.Format = "#,##0";
// Ajustement automatique de la largeur des colonnes worksheet.Cells[1, 1, 3, 3].AutoFitColumns();
// Sauvegarde du fichier var fileInfo = new FileInfo("employees.xlsx"); package.SaveAs(fileInfo); }}Bibliothèque ClosedXML
ClosedXML est une bibliothèque légère et entièrement gratuite (licence
Aussi dans la bibliothèque
gRPC-Go pour Go : guide complet avec exemples
Validation des données en Swift (iOS/macOS) : outils et pratique
Spring Boot pour Java : guide complet avec exemples
Migrations de bases de données en Java : aperçu des outils et bibliothèques
Client OAuth pour Java : ScribeJava et Spring Security OAuth2