Introduction à ClosedXML : qu'est-ce que c'est et pourquoi l'utiliser
ClosedXML est une bibliothèque open-source puissante pour le langage C# (.NET), conçue pour créer, lire et modifier des fichiers Microsoft Excel (formats .xlsx, .xlsm, .xltx). Elle offre une interface orientée objet pratique pour travailler avec des feuilles de calcul sans avoir besoin d'installer Microsoft Office ou d'utiliser des objets COM.
Cette bibliothèque est particulièrement utile pour :
- Automatisation des rapports — génération de rapports Excel complexes à partir de données issues de bases de données, d'API ou d'autres sources
- Import/Export de données — traitement en masse de données tabulaires entre différents systèmes
- Création de modèles — remplissage de modèles Excel préexistants avec des données
- Calculs financiers et analytiques — travail avec des formules, des tableaux croisés dynamiques et des graphiques
- Migration depuis VBA — transfert de macros vers du C# moderne
ClosedXML prend en charge toutes les fonctionnalités essentielles d'Excel : mise en forme des cellules, fusion de cellules, mise en forme conditionnelle, graphiques, tableaux croisés dynamiques, validation des données, protection des feuilles et bien plus encore. La bibliothèque fonctionne entièrement en mémoire et ne nécessite pas qu'Excel soit installé sur le serveur.
Installation de ClosedXML
L'installation de ClosedXML s'effectue via le gestionnaire de packages NuGet. Voici les différentes méthodes d'installation :
Avec .NET CLI
dotnet add package ClosedXML
Avec la console du gestionnaire de packages (Visual Studio)
Install-Package ClosedXML
Avec l'interface utilisateur du gestionnaire de packages NuGet
- Ouvrez votre projet dans Visual Studio
- Faites un clic droit sur le projet → "Manage NuGet Packages"
- Recherchez "ClosedXML" et cliquez sur "Install"
Vérification de l'installation
Après l'installation, ajoutez la directive using dans votre code :
using ClosedXML.Excel;
Démarrage rapide : créez votre premier fichier Excel
Créons un tableau simple avec des données d'employés et enregistrons-le dans un fichier :
using ClosedXML.Excel;
class Program
{
static void Main(string[] args)
{
// Créer un nouveau classeur
using (var workbook = new XLWorkbook())
{
// Ajouter une feuille de calcul
var worksheet = workbook.Worksheets.Add("Employés");
// Remplir les en-têtes
worksheet.Cell("A1").Value = "ID";
worksheet.Cell("B1").Value = "Nom";
worksheet.Cell("C1").Value = "Poste";
worksheet.Cell("D1").Value = "Salaire";
// Remplir les données
worksheet.Cell("A2").Value = 1;
worksheet.Cell("B2").Value = "Jean Dupont";
worksheet.Cell("C2").Value = "Développeur";
worksheet.Cell("D2").Value = 150000;
worksheet.Cell("A3").Value = 2;
worksheet.Cell("B3").Value = "Marie Martin";
worksheet.Cell("C3").Value = "Analyste";
worksheet.Cell("D3").Value = 120000;
// Mettre en forme les en-têtes
var headerRange = worksheet.Range("A1:D1");
headerRange.Style.Font.Bold = true;
headerRange.Style.Fill.BackgroundColor = XLColor.LightBlue;
// Ajuster automatiquement la largeur des colonnes
worksheet.Columns().AdjustToContents();
// Enregistrer le fichier
workbook.SaveAs("employes.xlsx");
}
Console.WriteLine("Fichier créé avec succès !");
}
}
Cet exemple crée un fichier employes.xlsx avec trois lignes de données et des en-têtes formatés.
Méthodes et fonctions principales de ClosedXML
1. Création d'un classeur et de feuilles
Méthode : new XLWorkbook() et workbook.Worksheets.Add()
Description : Crée un nouveau classeur et y ajoute des feuilles de calcul.
Paramètres :