COMPARAISON AVEC D'AUTRES COMPOSANTS

Comparaison entre IronXL et ClosedXML

Publié octobre 24, 2022
Partager:

Les applications logicielles actuelles requièrent la capacité de créer des bases de données et de générer des rapports à l'aide de fichiers Excel. Il existe aujourd'hui de nombreuses bibliothèques qui permettent aux utilisateurs de faire cela sans avoir besoin de Microsoft Excel.

Dans cet article, nous allons discuter et comparer comment travailler avec des documents Microsoft Excel de manière programmatique dans les technologies C# .NET en utilisant deux des bibliothèques les plus populaires, IronXL et ClosedXML pour lire, manipuler et écrire des rapports Excel.

IronXL et ClosedXML fournissent tous deux des méthodes pour créer, modifier et lire des documents Excel dans le Framework .NET. La question suivante est de décider quelle bibliothèque C# Excel est la mieux adaptée à votre projet. Cet article vous aidera à choisir la meilleure option pour vos applications.

Voyons d'abord ce que les deux bibliothèques ont à offrir, puis passons à la comparaison proprement dite.



La bibliothèque IronXL

IronXL est une bibliothèque .NET qui facilite la lecture et l'édition de documents Microsoft Excel avec C#. IronXL.Excel est une bibliothèque logicielle .NET autonome permettant de lire un large éventail de formats de feuilles de calcul. Il ne nécessite pas l'installation de Microsoft Excel et ne dépend pas d'Interop.

IronXL est une API C# intuitive qui vous permet de lire, d'éditer et de créer des fichiers de feuilles de calcul Excel dans .NET avec des performances rapides comme l'éclair. IronXL prend pleinement en charge .NET Core, .NET Framework, Xamarin, Mobile, Linux, macOS et Azure.

IronXL est une bibliothèque de feuilles de calcul Excel de premier plan pour C#, basée sur .NET Core et .NET Framework.

L'ensemble des fonctionnalités d'IronXL

  • Charger, lire et modifier des données --- à partir de XLS/XLSX/CSV/TSV
  • Enregistrement et exportation --- vers XLS/XLSX/CSV/TSV/JSON
  • System.Data Objets --- travailler avec des feuilles de calcul Excel comme System.Data.DataSet et System.Data.DataTable objets.
  • Formules --- fonctionne avec des formules Excel. Les formules sont recalculées chaque fois qu'une feuille est éditée.
  • Plages --- Feuille de travail facile à utiliser["A1:B10] syntaxe. Combinez et créez des gammes de manière intuitive.
  • Tri --- trier les plages, les colonnes et les lignes.
  • Style --- styles visuels des cellules, police, taille, motif d'arrière-plan, bordure, alignement et formats des nombres.

    D'autres fonctionnalités d'IronXL peuvent être explorées à l'aide de cette pagelien.

ClosedXML

ClosedXML est une bibliothèque .NET pour lire, manipuler et écrire des fichiers Excel 2007+(.xlsx, .xlsm) des dossiers. Il vise à fournir une interface intuitive et conviviale pour traiter avec la bibliothèque OpenXML sous-jacente. .xlsx est une extension de fichier pour un format de fichier de feuille de calcul OpenXML sous-jacent à l'API utilisé par Microsoft Excel. Les fichiers .xlsm supportent les macros. Les fichiers .xltm sont des fichiers modèles activés par des macros. Le format .xls est un format binaire propriétaire tandis que le format .xlsx est basé sur le format Office OpenXML.

ClosedXML est une bibliothèque .NET pour la génération de rapports dans Microsoft Excel sans qu'Excel soit installé sur la machine qui exécute le code.

Caractéristiques de ClosedXML

ClosedXML dispose d'une interface conviviale avec des fonctions API étendues pour gérer la création et l'extraction de contenu dans Excel. Grâce à ces appels d'API et à ces demandes d'extraction, vous pouvez modifier le moindre détail d'une feuille Excel ou d'un classeur

Toutes les caractéristiques sont énumérées ci-dessous :

  1. Formules

  2. Validation

  3. Hyper-Links

  4. Protection(Niveau de la feuille et de la cellule)

  5. Formatage conditionnel

  6. Freeze Panes (gel des vitres)

  7. Tables

  8. Gammes

  9. Styling

  10. Configuration de la page(Impression)

  11. Filtres automatiques

  12. Commentaires

    Le reste de l'article se poursuit comme suit :

  13. Créer une application console

  14. Installation de la bibliothèque C# d'IronXL

  15. Installation de ClosedXML

  16. Créer et enregistrer un nouveau classeur et une nouvelle feuille Excel

  17. Lire le fichier Excel

  18. Travailler avec des formules Excel

  19. Licences

  20. Résumé et conclusion

1. Créer une application console

Suivez les étapes suivantes pour créer une application console :

  • Démarrer l'IDE Visual Studio 2022.
  • Cliquez sur "Créer un nouveau projet"
  • Sur la page "Créer un nouveau projet", sélectionnez C# dans la liste déroulante des langues, Windows dans la liste Platformes et Console dans la liste "Types de projets".
  • Sélectionnez Application console(framework .NET) à partir des modèles de projet affichés.
    Créer un projet

    Créer un projet

  • Cliquez sur Suivant.
  • Nommez le projet "DemoApp" et cliquez sur Suivant.

    Projet DemoApp

    Projet DemoApp

  • Dans l'écran Informations complémentaires, indiquez la version du framework que vous souhaitez utiliser. Nous utiliserons .NET Framework 6.0 dans cet exemple.

    framework .NET 6.0

    framework .NET 6.0

  • Cliquez sur Créer pour terminer le processus.

    Le projet est maintenant créé et nous sommes presque prêts à tester les bibliothèques. Cependant, nous devons encore les installer et les intégrer dans notre projet. Commençons par installer IronXL.

2. Installation de la bibliothèque C# d'IronXL

Vous pouvez télécharger et installer le logicielBibliothèque IronXL à l'aide des méthodes suivantes :

  1. Utilisation de Visual Studio avec les paquets NuGet.

  2. Installation manuelle de la DLL.

    Examinons chacun d'entre eux de plus près.

2.1. Utilisation de Visual Studio avec les paquets NuGet

Visual Studio propose le gestionnaire de paquets NuGet pour installer les paquets NuGet dans vos projets. Vous pouvez y accéder par le menu Projet ou en cliquant avec le bouton droit de la souris sur votre projet dans l'explorateur de solutions.

Gestionnaire de paquets

Gestionnaire de paquets

  • Ensuite, à partir de l'onglet Parcourir > rechercher IronXL.Excel > Installer

    Installation NuGet d'IronXL

    Installation NuGet d'IronXL

  • Et nous avons terminé.

2.2. Installation manuelle de la DLL

Une autre façon de télécharger et d'installer la bibliothèque IronXL C# consiste à suivre les étapes suivantes pour installer le paquet IronXL NuGet via l'invite de commande Developer.

  • Ouvrez l'invite de commande Developer --- qui se trouve généralement dans le dossier Visual Studio.

    Tapez la commande suivante :

Install-Package IronXL.Excel
  • Appuyez sur Enter.
  • Cette opération permet de télécharger et d'installer le paquet.
  • Rechargez votre projet Visual Studio et commencez à l'utiliser.

2.4. Ajouter les directives d'utilisation nécessaires

  1. Dans l'explorateur de solutions, cliquez avec le bouton droit de la souris sur le fichier Program.cs, puis cliquez sur Afficher le code.

  2. Ajoutez les directives d'utilisation suivantes au début du fichier de code :
using IronXL;
using IronXL;
Imports IronXL
VB   C#

Tout est fait! IronXL est téléchargé, installé et prêt à l'emploi. Cependant, avant cela, nous devons installer ClosedXML.

3. Installation de ClosedXML

Pour installer le paquet ClosedXML, vous pouvez le télécharger directement depuis NuGet ou depuis NuGet Package Manager/Console dans le projet.

Pour installer directement ClosedXML, cliquez sur ce lien lien.

3.1. Utilisation du gestionnaire de paquets et de la console NuGet

Ouvrez le gestionnaire de paquets NuGet à partir de l'explorateur de solutions du projet, recherchez ClosedXML et cliquez sur installer.

Installation NuGet de ClosedXML

Installation NuGet de ClosedXML

Ou bien :

  • Ouvrez l'invite de commande Developer --- qui se trouve généralement dans le dossier Visual Studio.

    Tapez la commande suivante :

PM> Install-Package ClosedXML
  • Appuyez sur Enter.
  • Cette opération permet de télécharger et d'installer le paquet.
  • Rechargez votre projet Visual Studio et commencez à l'utiliser.

3.2. Ajouter les directives d'utilisation nécessaires

  1. Dans l'explorateur de solutions, cliquez avec le bouton droit de la souris sur le fichier Program.cs, puis cliquez sur Afficher le code.

  2. Ajoutez les directives d'utilisation suivantes au début du fichier de code :
using ClosedXML.Excel;
using ClosedXML.Excel;
Imports ClosedXML.Excel
VB   C#

4. Créer et enregistrer un nouveau classeur et de nouvelles feuilles de calcul Excel

Un classeur est un fichier Excel contenant plusieurs feuilles de calcul avec des lignes et des colonnes. Les deux bibliothèques permettent de créer un nouveau classeur Excel et des feuilles de calcul. Examinons le code étape par étape.

4.1. Nouveau classeur et nouvelles feuilles Excel à l'aide d'IronXL

Il n'y a rien de plus facile que de créer un nouveau classeur Excel à l'aide d'IronXL. Il suffit d'une ligne de code. Oui, vraiment. Ajoutez le code suivant à votre fonction statique void main dans le fichier Program.cs :

WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
VB   C#

Les deux XLS(ancienne version du fichier Excel) et XLSX(version actuelle et plus récente du fichier) peuvent être créés avec IronXL.

Et il est encore plus simple de créer une feuille de travail par défaut :

var worksheet = workbook.CreateWorkSheet("IronXL Features");
var worksheet = workbook.CreateWorkSheet("IronXL Features");
Dim worksheet = workbook.CreateWorkSheet("IronXL Features")
VB   C#

Vous pouvez désormais utiliser la variable de feuille de calcul pour définir les valeurs des cellules et faire presque tout ce qu'un fichier Excel peut faire.

//Add data and styles to the new worksheet
worksheet ["A1"].Value = "Hello World";
worksheet ["A2"].Style.BottomBorder.SetColor("#ff6600");
worksheet ["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;
//Add data and styles to the new worksheet
worksheet ["A1"].Value = "Hello World";
worksheet ["A2"].Style.BottomBorder.SetColor("#ff6600");
worksheet ["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;
'Add data and styles to the new worksheet
worksheet ("A1").Value = "Hello World"
worksheet ("A2").Style.BottomBorder.SetColor("#ff6600")
worksheet ("A2").Style.BottomBorder.Type = IronXL.Styles.BorderType.Double
VB   C#

Enregistrer le fichier Excel :

//Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");
//Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");
'Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx")
VB   C#

Le fichier de sortie se présente comme suit :

Sortie NewExcelFile

Nouveau fichier Excel sortie

4.2. Nouveau classeur et nouvelles feuilles Excel à l'aide de ClosedXML

Vous pouvez également créer des fichiers Excel(.xlsx, .xlsm) facilement à l'aide de ClosedXML. Le code suivant est un exemple typique qui permet de générer un simple fichier Excel et de l'enregistrer. Vous pouvez ajouter une nouvelle feuille d'échantillons à votre classeur et attribuer des valeurs aux cellules dans votre application Excel.

// Create a new empty Excel file.
var workbook = new XLWorkbook();

// Create a new worksheet and set cell A1 value to 'Hello world!'.
var worksheet = workbook.Worksheets.Add("ClosedXML Features");
worksheet.Cell("A1").Value = "Hello world!";

// Save to XLSX file.
workbook.SaveAs("Spreadsheet.xlsx");
// Create a new empty Excel file.
var workbook = new XLWorkbook();

// Create a new worksheet and set cell A1 value to 'Hello world!'.
var worksheet = workbook.Worksheets.Add("ClosedXML Features");
worksheet.Cell("A1").Value = "Hello world!";

// Save to XLSX file.
workbook.SaveAs("Spreadsheet.xlsx");
' Create a new empty Excel file.
Dim workbook = New XLWorkbook()

' Create a new worksheet and set cell A1 value to 'Hello world!'.
Dim worksheet = workbook.Worksheets.Add("ClosedXML Features")
worksheet.Cell("A1").Value = "Hello world!"

' Save to XLSX file.
workbook.SaveAs("Spreadsheet.xlsx")
VB   C#

Le fichier de sortie se présente comme suit :

Sortie d'un fichier de tableur

Sortie d'un fichier de tableur

5. Lire un fichier Excel (Importer un fichier Excel)

Les deux bibliothèques peuvent ouvrir et lire des documents Excel existants. Jetons un coup d'œil à l'exemple de code.

5.1. Lire les fichiers Excel avec IronXL

La classe IronXL WorkBook représente une feuille Excel. Pour ouvrir un fichier Excel à l'aide de C#, nous utilisons WorkBook.Load et spécifions le chemin d'accès au fichier(.xlsx). Le code suivant, d'une seule ligne, est utilisé pour ouvrir le fichier en lecture :

//Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
//Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
'Load WorkBook
Dim workbook = WorkBook.Load("Spreadsheets\\sample.xlsx")
VB   C#

Chaque carnet de travail peut comporter plusieurs feuilles de calcul dans le document Excel. Si le classeur contient plusieurs feuilles de calcul, récupérez-les par leur nom comme suit :

//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
'Open Sheet for reading
Dim worksheet = workbook.GetWorkSheet("sheetnamegoeshere")
VB   C#

Code pour la lecture des valeurs des cellules :

// Read from Ranges of cells elegantly.
foreach (var cell in worksheet ["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Read from Ranges of cells elegantly.
foreach (var cell in worksheet ["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
' Read from Ranges of cells elegantly.
For Each cell In worksheet ("A2:A10")
	Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell
VB   C#

5.2. Lire les fichiers Excel à l'aide de ClosedXML

ClosedXML permet de lire des fichiers précédemment créés à partir de votre application C#. Vous pouvez importer un fichier Excel en utilisant le code suivant.

// Import Excel File from file's path.
var workbook = new XLWorkbook("SimpleTemplate.xlsx");

// Read worksheet from workbook using sheet number.
var worksheet1 = workbook.Worksheet(1);

// Read cell value from first sheet
var data = worksheet1.Cell("A1").GetValue<string>();

// Display on screen
Console.WriteLine(data);
// Import Excel File from file's path.
var workbook = new XLWorkbook("SimpleTemplate.xlsx");

// Read worksheet from workbook using sheet number.
var worksheet1 = workbook.Worksheet(1);

// Read cell value from first sheet
var data = worksheet1.Cell("A1").GetValue<string>();

// Display on screen
Console.WriteLine(data);
' Import Excel File from file's path.
Dim workbook = New XLWorkbook("SimpleTemplate.xlsx")

' Read worksheet from workbook using sheet number.
Dim worksheet1 = workbook.Worksheet(1)

' Read cell value from first sheet
Dim data = worksheet1.Cell("A1").GetValue(Of String)()

' Display on screen
Console.WriteLine(data)
VB   C#

6. Travailler avec des formules Excel

Les formules Excel sont l'une des fonctions les plus importantes d'Excel. Ces deux bibliothèques disposent d'un puissant moteur de calcul de formules. Elles permettent de travailler avec des formules et de les appliquer facilement aux cellules.

6.1. Travailler avec des formules Excel à l'aide d'IronXL

Après avoir chargé le classeur et la feuille de calcul, l'exemple de code suivant peut être utilisé pour modifier les formules ou les appliquer à des cellules spécifiques. Le code est le suivant :

// Set Formulas
worksheet ["A1"].Formula = "=Sum(B8:C12)";
worksheet ["B8"].Formula = "=C9/C11";
worksheet ["G30"].Formula = "=Max(C3:C7)";
 .
// Force recalculating all formula values in all sheets.
workbook.EvaluateAll();
// Set Formulas
worksheet ["A1"].Formula = "=Sum(B8:C12)";
worksheet ["B8"].Formula = "=C9/C11";
worksheet ["G30"].Formula = "=Max(C3:C7)";
 .
// Force recalculating all formula values in all sheets.
workbook.EvaluateAll();
' Set Formulas
worksheet ("A1").Formula = "=Sum(B8:C12)"
worksheet ("B8").Formula = "=C9/C11"
worksheet ("G30").Formula = "=Max(C3:C7)"
'.
' Force recalculating all formula values in all sheets.
workbook.EvaluateAll()
VB   C#

Vous pouvez également récupérer des formules et leurs valeurs :

// Get the formula's calculated value.  e.g. "52"
string formulaValue = worksheet ["G30"].Value;

//Get the formula as a string. e.g. "Max(C3:C7)"
string formulaString = worksheet ["G30"].Formula;

//Save your changes with updated formulas and calculated values.
workbook.Save();
// Get the formula's calculated value.  e.g. "52"
string formulaValue = worksheet ["G30"].Value;

//Get the formula as a string. e.g. "Max(C3:C7)"
string formulaString = worksheet ["G30"].Formula;

//Save your changes with updated formulas and calculated values.
workbook.Save();
' Get the formula's calculated value.  e.g. "52"
Dim formulaValue As String = worksheet ("G30").Value

'Get the formula as a string. e.g. "Max(C3:C7)"
Dim formulaString As String = worksheet ("G30").Formula

'Save your changes with updated formulas and calculated values.
workbook.Save()
VB   C#

6.2. Travailler avec des formules Excel en utilisant ClosedXML

ClosedXML ne prend pas en charge toutes les formules et vous obtiendrez probablement une erreur désagréable si la formule n'est pas prise en charge ou s'il y a une erreur dans la formule. Veuillez tester vos formules avant de les mettre en production. Voyons comment les utiliser.

// Set Formulas
worksheet.Cell("A1").Value = "Hello World!";
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)";

// You can use Evaluate function to directly calculate formula,
var sum = worksheet.Evaluate("SUM(B1:B7)");

// Force recalculation
worksheet.RecalculateAllFormulas();

// Save Excel file
workbook.SaveAs("Formula Calculation.xlsx");
// Set Formulas
worksheet.Cell("A1").Value = "Hello World!";
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)";

// You can use Evaluate function to directly calculate formula,
var sum = worksheet.Evaluate("SUM(B1:B7)");

// Force recalculation
worksheet.RecalculateAllFormulas();

// Save Excel file
workbook.SaveAs("Formula Calculation.xlsx");
' Set Formulas
worksheet.Cell("A1").Value = "Hello World!"
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)"

' You can use Evaluate function to directly calculate formula,
Dim sum = worksheet.Evaluate("SUM(B1:B7)")

' Force recalculation
worksheet.RecalculateAllFormulas()

' Save Excel file
workbook.SaveAs("Formula Calculation.xlsx")
VB   C#

La propriété FormulaA1 fait référence à la cellule A1. Si vous faites référence à une autre cellule, vous devez l'ajouter à la propriété Formula. Par exemple, FormulaC2.

7. Licences

IronXL est une bibliothèque Excel C# ouvertement commerciale. Il est gratuit pour le développement et peut toujours faire l'objet d'une licence pour un déploiement commercial.Les licences sont disponibles pour l'utilisation d'un seul projet, pour les développeurs individuels, les agences et les entreprises internationales, ainsi que pour la redistribution SaaS et OEM. Toutes les licences comprennent une garantie de remboursement de 30 jours, un an d'assistance et de mises à jour du produit, la validité pour le développement, la mise en place et la production, ainsi qu'une licence permanente(achat unique). Le paquet Lite commence à partir de $749.

Paquets de licences IronXL

Paquets de licences IronXL

Pour ClosedXML, les applications utilisant ce fichier DLL ne nécessitent pas de licence distincte, que ce soit pour un usage unique ou pour un usage commercial. Pour qu'une solution puisse fonctionner avec un ClosedXML, il suffit d'installer le paquet NuGet "ClosedXML" disponible publiquement. ClosedXML est sous licence MIT. La licence MIT est une licence permissive courte et simple dont les conditions ne requièrent que la préservation des mentions de copyright et de licence. Les travaux sous licence, les modifications et les travaux plus importants peuvent être distribués sous différentes conditions et sans le code source.

Licence ClosedXML

Licence ClosedXML

8. Résumé et conclusion

Résumé

IronXL est une bibliothèque complète offrant tout ce dont vous avez besoin pour manipuler un fichier Excel. IronXL permet aux développeurs de lire, de générer et d'éditer des fichiers Excel(et autres fichiers de tableurs) dans les applications et sites web .NET. Il fournit une approche rapide et naturelle pour travailler avec Excel et d'autres fichiers de feuilles de calcul en C#.

ClosedXML est une bibliothèque .NET pour la lecture et l'écriture de fichiers Excel, qui facilite la création de fichiers Excel 2007+ pour les développeurs. Il fournit une méthode orientée objet pour manipuler les fichiers(similaire à VBA) sans avoir à se préoccuper des problèmes liés aux documents XML. Il peut être utilisé par n'importe quel langage .NET comme C# et Visual Basic(VB). Il fournit des fonctionnalités d'OpenXML, mais certaines d'entre elles ne sont pas encore mises en œuvre. Par exemple, les macros, l'intégration et les graphiques.

Conclusion

IronXL est également utile pour d'autres opérations Excel telles que le format des données des cellules, le tri, le style des cellules. Il peut également fonctionner avec des feuilles de calcul Excel en tant que System.Data.DataSet et System.Data.DataTable. Il prend en charge les applications basées sur la console, le serveur web et le bureau. Il est également compatible avec toutes les plateformes OS.

ClosedXML est une bibliothèque légère pour lire, manipuler et écrire des applications Excel en utilisant l'API OpenXML qui est rapide et plus facile à mettre en œuvre. Il permet d'effectuer toutes les principales opérations Excel telles que la mise en page, l'arrêt sur image, les liens hypertextes, les tableaux et le formatage conditionnel. Il n'y a pas de problèmes de surcharge ou de faible performance.

En comparaison, IronXL et ClosedXML sont tous deux rapides et précis lorsqu'il s'agit de feuilles de calcul Excel. Ils ne nécessitent pas d'installation ou de licence Microsoft Office pour créer des rapports Excel. Cependant, IronXL a un avantage sur ClosedXML, car ClosedXML n'est pas sûr pour les threads. IronXL est facile à utiliser et permet de convertir d'autres formats en XLSX, ainsi que de XLSX vers d'autres formats tels que CSV et HTML. ClosedXML ne permet pas cette conversion. Cette interconversion permet aux utilisateurs de travailler facilement avec d'autres formats de fichiers.

Désormais, vous pouvez obtenir cinq produits Iron pour laprix de deux seulement dans le package lite pour 1 développeur($1498) et illimité pour 5 998 $ et économisez jusqu'à 60 %.

< PRÉCÉDENT
Comparaison entre IronXL et FastExcel for .NET
SUIVANT >
Comparaison entre IronXL et GrapeCity Excel Viewer