Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
La capacité à travailler avec des fichiers Excel pour générer des rapports et construire des bases de données est devenue essentielle pour les applications logicielles d'aujourd'hui. Il existe de nombreuses bibliothèques qui permettent aux utilisateurs de faire cela sans avoir besoin de Microsoft Excel.
Dans cet article, nous allons voir comment travailler avec des documents Microsoft Excel de manière programmatique en C#.NET en utilisant deux des bibliothèques de feuilles de calcul Excel les plus populaires : IronXL et GemBox.Spreadsheet.
IronXL et GemBox.Spreadsheet fournissent tous deux des méthodes pour créer, modifier et lire des documents Excel dans les applications .NET. Alors, comment choisir celui qui convient le mieux à votre projet ? Cet article compare les deux bibliothèques et vous aide à choisir la meilleure option pour vos projets.
IronXL for .NET C# est une bibliothèque qui facilite la lecture et l'édition d'un large éventail de formats de feuilles de calcul. Il n'est pas nécessaire que Microsoft Excel soit installé et il ne nécessite pas d'interopérabilité. IronXL prend pleinement en charge .NET Core, .NET Framework, Xamarin, Mobile, Linux, macOS et Azure.
System.Data
- il fonctionne avec les feuilles de calcul Excel WorkBook en tant qu'objets System.Data.DataSet
et System.Data.DataTable
.GemBox.Spreadsheet est une bibliothèque qui vous permet de créer, lire, écrire, modifier, convertir et imprimer des fichiers de feuilles de calcul dans vos applications C# .NET. Il est jusqu'à 250 fois plus rapide que l'automatisation de Microsoft Excel!
System.Data.DataSet
et un System.Data.DataTable
.Imprimer des feuilles de calcul Excel
Le reste de l'article se poursuit comme suit :
Créer une application console
Installation de la bibliothèque C# d'IronXL
Installation du tableur GemBox
Créer un nouveau classeur Excel
Lecture de fichiers Excel
Travailler avec des formules Excel
Inter Convert Files
Licences
Les étapes suivantes vous aideront à créer une application console :
Indiquez ici la version du framework que vous souhaitez utiliser. La dernière version est recommandée.
Cliquez sur Créer pour terminer le processus.
Le projet est maintenant créé et prêt à être utilisé.
La bibliothèque IronXL peut être téléchargée et installée en utilisant les méthodes suivantes :
En utilisant Visual Studio avec NuGet Package Manager.
Visual Studio 2022 fournit le gestionnaire de paquets NuGet pour installer les paquets NuGet dans vos projets. Vous pouvez y accéder de plusieurs façons : par le menu Projet ou en cliquant avec le bouton droit de la souris sur votre projet dans l'explorateur de solutions.
Une autre méthode pour télécharger et installer la bibliothèque IronXL consiste à utiliser la console du gestionnaire de paquets NuGet.
Ouvrez la console Developer Command Prompt.
Tapez la commande suivante :
Install-Package IronXL.Excel
Ouvrez le fichier Program.cs.
using IronXL;
using IronXL;
Imports IronXL
Utilisez la commande suivante dans NuGet Package Manager pour installer GemBox.Spreadsheet.
Install-Package GemBox.Spreadsheet
Vous pouvez égalementtélécharger et exécutez le programme d'installation.
Ensuite, ouvrez le fichier program.cs comme précédemment et ajoutez les lignes de code sous l'instruction using que nous avons ajoutée dans la section précédente :
using Gembox.Spreadsheet;
// If using Professional version, put your serial key below.
SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY");
using Gembox.Spreadsheet;
// If using Professional version, put your serial key below.
SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY");
Imports Gembox.Spreadsheet
' If using Professional version, put your serial key below.
SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY")
Un classeur Excel peut contenir plusieurs feuilles de calcul. Les deux bibliothèques permettent de créer des classeurs Excel contenant une ou plusieurs feuilles de calcul. Voyons comment chaque bibliothèque y parvient.
Il est très facile de créer un nouveau classeur Excel à l'aide d'IronXL!
Ajoutez le code suivant à votre fichier Program.cs :
var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
var worksheet = workbook.CreateWorkSheet("IronXL Features");
//Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");
var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
var worksheet = workbook.CreateWorkSheet("IronXL Features");
//Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");
Dim workbook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim worksheet = workbook.CreateWorkSheet("IronXL Features")
'Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx")
La création de classeurs Excel est également très facile dans GemBox, comme le montre l'extrait de code suivant :
// Create a new empty Excel file.
var workbook = new ExcelFile();
// Create a new worksheet and set cell A1 value to 'Hello world!'.
workbook.Worksheets.Add("Sheet 1").Cells ["A1"].Value = "Hello world!";
// Save to XLSX file.
workbook.Save("Spreadsheet.xlsx");
// Create a new empty Excel file.
var workbook = new ExcelFile();
// Create a new worksheet and set cell A1 value to 'Hello world!'.
workbook.Worksheets.Add("Sheet 1").Cells ["A1"].Value = "Hello world!";
// Save to XLSX file.
workbook.Save("Spreadsheet.xlsx");
' Create a new empty Excel file.
Dim workbook = New ExcelFile()
' Create a new worksheet and set cell A1 value to 'Hello world!'.
workbook.Worksheets.Add("Sheet 1").Cells ("A1").Value = "Hello world!"
' Save to XLSX file.
workbook.Save("Spreadsheet.xlsx")
IronXL et GemBox sont tous deux capables de lire des données à partir de fichiers Excel existants. Examinons un à un les exemples de code pour chacune des bibliothèques.
La classe WorkBook
dans IronXL représente une feuille Excel. Pour ouvrir et lire un fichier Excel en C#, nous utilisons WorkBook.Load
et spécifions le chemin exact du fichier Excel(.xlsx).
Le code suivant charge une feuille de calcul :
//Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
//Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
'Load WorkBook
Dim workbook = WorkBook.Load("Spreadsheets\\sample.xlsx")
'Open Sheet for reading
Dim worksheet = workbook.GetWorkSheet("sheetnamegoeshere")
Nous lisons les données de chaque cellule de la feuille de calcul à l'aide des lignes de code suivantes :
// 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
GemBox.Spreadsheet permet de lire rapidement des fichiers Excel à partir de votre application C#. Le code suivant illustre comment ouvrir et lire un fichier.
var workbook = ExcelFile.Load("SimpleTemplate.xlsx");
var worksheet = workbook.Worksheets["sheetnamegoeshere"];
foreach (var cell in worksheet.Cells.GetSubrange("A2", "A20"))
{
Console.WriteLine("Cell {0} has value '{1}'", cell.Name, cell.Value);
}
var workbook = ExcelFile.Load("SimpleTemplate.xlsx");
var worksheet = workbook.Worksheets["sheetnamegoeshere"];
foreach (var cell in worksheet.Cells.GetSubrange("A2", "A20"))
{
Console.WriteLine("Cell {0} has value '{1}'", cell.Name, cell.Value);
}
Dim workbook = ExcelFile.Load("SimpleTemplate.xlsx")
Dim worksheet = workbook.Worksheets("sheetnamegoeshere")
For Each cell In worksheet.Cells.GetSubrange("A2", "A20")
Console.WriteLine("Cell {0} has value '{1}'", cell.Name, cell.Value)
Next cell
La mise en œuvre de formules est l'une des fonctions les plus importantes d'Excel. Les deux bibliothèques disposent d'un puissant moteur de calcul de formules. Les formules peuvent être recalculées et sauvegardées dans les cellules.
Une fois le classeur et la feuille de calcul chargés, le code ci-dessous peut être utilisé pour modifier les formules ou appliquer de nouvelles formules à des cellules spécifiques :
// Set Formulas
worksheet ["A1"].Formula = "Sum(B8:C12)";
worksheet ["B8"].Formula = "=C9/C11";
worksheet ["G30"].Formula = "Max(C3:C7)";
// Force recalculate 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 recalculate 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 recalculate all formula values in all sheets.
workbook.EvaluateAll()
Vous pouvez également récupérer des formules et leurs valeurs :
// Get the formula's calculated value. e.g. "52"
var formulaValue = worksheet["G30"].Value;
//Get the formula as a string. e.g. "Max(C3:C7)"
var formulaString = worksheet["G30"].Formula;
//Save your changes with updated formulas and calculated values.
workbook.Save();
// Get the formula's calculated value. e.g. "52"
var formulaValue = worksheet["G30"].Value;
//Get the formula as a string. e.g. "Max(C3:C7)"
var 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 = worksheet("G30").Value
'
'Get the formula as a string. e.g. "Max(C3:C7)"
Dim formulaString = worksheet("G30").Formula
'Save your changes with updated formulas and calculated values.
workbook.Save()
GemBox.Spreadsheet permet d'accéder à un grand nombre de fonctions de formules Excel, y compris les fonctions mathématiques, statistiques, logiques, de recherche, financières et bien d'autres. Voyons comment les utiliser.
// Set Formulas
worksheet.Cells ["A2"].Value = "=1 + 1";
worksheet.Cells ["A3"].Value = "=3 * (2 - 8)";
worksheet.Cells ["A10"].Value = "=SIGN(B9)";
worksheet.Cells ["A11"].Value = "=SUM(B2:B10)";
workbook.Save("Formula Calculation.xlsx");
// Set Formulas
worksheet.Cells ["A2"].Value = "=1 + 1";
worksheet.Cells ["A3"].Value = "=3 * (2 - 8)";
worksheet.Cells ["A10"].Value = "=SIGN(B9)";
worksheet.Cells ["A11"].Value = "=SUM(B2:B10)";
workbook.Save("Formula Calculation.xlsx");
' Set Formulas
worksheet.Cells ("A2").Value = "=1 + 1"
worksheet.Cells ("A3").Value = "=3 * (2 - 8)"
worksheet.Cells ("A10").Value = "=SIGN(B9)"
worksheet.Cells ("A11").Value = "=SUM(B2:B10)"
workbook.Save("Formula Calculation.xlsx")
IronXL et GemBox.Spreadsheet permettent tous deux de convertir les différents types de fichiers de feuilles de calcul.
var workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
var ws = workbook.DefaultWorkSheet;
workbook.SaveAs("CsvToExcelConversion.xlsx");
var workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
var ws = workbook.DefaultWorkSheet;
workbook.SaveAs("CsvToExcelConversion.xlsx");
Dim workbook = WorkBook.LoadCSV("test.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws = workbook.DefaultWorkSheet
'
workbook.SaveAs("CsvToExcelConversion.xlsx")
var workbook = WorkBook.Load("test.xlsx");
//This is how you can export workbook to .xlsm format
workbook.SaveAs("test.xlsm");
var workbook = WorkBook.Load("test.xlsx");
//This is how you can export workbook to .xlsm format
workbook.SaveAs("test.xlsm");
Dim workbook = WorkBook.Load("test.xlsx")
'
'This is how you can export workbook to .xlsm format
workbook.SaveAs("test.xlsm")
var workbook = WorkBook.Load("test.xlsx");
var options = new HtmlExportOptions()
{
//This is how we can make row/column numbers visible in html document
OutputRowNumbers = true,
OutputColumnHeaders = true,
OutputHiddenColumns = true,
//This is how we can make hidden rows/columns visible in html document
OutputHiddenRows = true,
OutputLeadingSpacesAsNonBreaking = true
};
//This is how we can export workbook to the HTML file
workbook.ExportToHtml("workbook.html",options);
var workbook = WorkBook.Load("test.xlsx");
var options = new HtmlExportOptions()
{
//This is how we can make row/column numbers visible in html document
OutputRowNumbers = true,
OutputColumnHeaders = true,
OutputHiddenColumns = true,
//This is how we can make hidden rows/columns visible in html document
OutputHiddenRows = true,
OutputLeadingSpacesAsNonBreaking = true
};
//This is how we can export workbook to the HTML file
workbook.ExportToHtml("workbook.html",options);
Dim workbook = WorkBook.Load("test.xlsx")
'
Dim options = New HtmlExportOptions() With {
.OutputRowNumbers = True,
.OutputColumnHeaders = True,
.OutputHiddenColumns = True,
.OutputHiddenRows = True,
.OutputLeadingSpacesAsNonBreaking = True
}
'
'This is how we can export workbook to the HTML file
workbook.ExportToHtml("workbook.html",options)
var workbook = ExcelFile.Load("ComplexTemplate.xlsx");
workbook.Save("Convert.pdf", new PdfSaveOptions(){SelectionType = SelectionType.EntireFile});
var workbook = ExcelFile.Load("ComplexTemplate.xlsx");
workbook.Save("Convert.pdf", new PdfSaveOptions(){SelectionType = SelectionType.EntireFile});
Dim workbook = ExcelFile.Load("ComplexTemplate.xlsx")
workbook.Save("Convert.pdf", New PdfSaveOptions() With {.SelectionType = SelectionType.EntireFile})
// Load an Excel file into the ExcelFile object.
var workbook = ExcelFile.Load("CombinedTemplate.xlsx");
// Create image save options.
var imageOptions = new ImageSaveOptions(ImageSaveFormat.Png)
{
PageNumber = 0, // Select the first Excel page.
Width = 1240, // Set the image width.
CropToContent = true // Export only the sheet's content.
};
// Save the ExcelFile object to a PNG file.
workbook.Save("Output.png", imageOptions);
// Load an Excel file into the ExcelFile object.
var workbook = ExcelFile.Load("CombinedTemplate.xlsx");
// Create image save options.
var imageOptions = new ImageSaveOptions(ImageSaveFormat.Png)
{
PageNumber = 0, // Select the first Excel page.
Width = 1240, // Set the image width.
CropToContent = true // Export only the sheet's content.
};
// Save the ExcelFile object to a PNG file.
workbook.Save("Output.png", imageOptions);
' Load an Excel file into the ExcelFile object.
Dim workbook = ExcelFile.Load("CombinedTemplate.xlsx")
' Create image save options.
Dim imageOptions = New ImageSaveOptions(ImageSaveFormat.Png) With {
.PageNumber = 0,
.Width = 1240,
.CropToContent = True
}
' Save the ExcelFile object to a PNG file.
workbook.Save("Output.png", imageOptions)
ExcelFile.Load("CSVTemplate.csv").Save("Convert.xlsx");
ExcelFile.Load("CSVTemplate.csv").Save("Convert.xlsx");
ExcelFile.Load("CSVTemplate.csv").Save("Convert.xlsx")
De même, vous pouvez convertir des fichiers XLS, XLSX, ODS, CSV et HTML à partir de vos applications C# en utilisant GemBox.Spreadsheet.
IronXL est une bibliothèque Excel C# commerciale. Il est absolument gratuit à des fins de développement, mais il doit faire l'objet d'une licence pour un déploiement commercial. Tous les produits IronXLLicences sont disponibles pour une utilisation dans le cadre d'un projet unique, pour des développeurs individuels, des agences et des entreprises internationales, avec ou sans SaaS et redistribution OEM. Chaque licence est assortie d'une garantie de remboursement de 30 jours, d'un an d'assistance et de mises à jour du produit, d'une validité pour le développement, la mise en place et la production, et d'une licence perpétuelle(achat unique). La licence Lite commence à $749.
GemBox.Spreadsheet est également une bibliothèque commerciale. Il peut être utilisé gratuitement dans des applications personnelles et commerciales. Toutefois, il peut également être utilisé sous licence pour un usage professionnel. Sonlicences comprennent l'utilisation pour les développeurs individuels, les petites équipes et les grandes entreprises. Il permet un déploiement libre de droits(pas de licences serveur ou OEM)le logiciel est livré avec un support technique gratuit pendant 12 mois, des corrections de bogues et des nouvelles versions gratuites. L'offre pour un seul développeur est proposée à partir de 890 dollars.
Cet article a démontré la facilité avec laquelle ces deux bibliothèques permettent à leurs utilisateurs de charger, lire, éditer et convertir des feuilles de calcul Microsoft Excel. IronXL et GemBox.Spreadsheet fournissent tous deux des approches puissantes et uniques pour accomplir ces activités, et constituent des choix convaincants pour effectuer des tâches très générales d'automatisation de la lecture et de l'écriture.
Alors, quelle bibliothèque Excel .NET les développeurs doivent-ils utiliser dans leurs projets ?
Voici quelques points que les lecteurs peuvent prendre en considération lorsqu'ils choisissent d'utiliser IronXL ou GemBox.Spreadsheet pour leur prochain grand projet :
Accessibilité. IronXL donne la priorité à la facilité d'utilisation, à la précision et à la rapidité. La bibliothèque a été conçue pour permettre aux utilisateurs d'accomplir des tâches de programmation Excel courantes(chargement, lecture, écriture, édition, sélection de plages, etc.) rapidement et en utilisant le moins de lignes de code possible. Le site web dispose d'une grande quantité detutoriels, Guides pratiquesetExemples de codes rédigé pour aider les utilisateurscommencer et d'atteindre leurs grands objectifs le plus rapidement et le plus facilement possible. De plus, IronXL dispose d'une équipe d'ingénieurs sur appel 24/5 pour aider les utilisateurs à tout moment en cas de problème.
Les développeurs peuvent envisager d'utiliser IronXL si l'assistance, la convivialité et la rapidité de mise en œuvre sont de la plus haute importance.
A noter que le site web de GemBox.Spreadsheet dispose également d'une rubriquecollection d'exemples détaillés disponibles pour aider les développeurs à tirer le meilleur parti de leurs puissantes fonctionnalités
Versatilité. L'ensemble des fonctionnalités de GemBox.Spreadsheet permet aux développeurs d'accomplir des tâches d'automatisation Excel qui vont bien au-delà des tâches de base abordées dans ce tutoriel. Les utilisateurs peuventdessiner des formes sur les feuilles de calcul Excel, éditer les feuilles de calcul à l'aide depolices personnaliséescréer de nouvelles feuilles de calcul avecMacros VBA, contrôles de formulairesetcomposants du graphiqueet d'enregistrer des documents Excel au format PDF avecchiffrement etsignatures numériquesentre autres. GemBox.Spreadsheet prend en charge plus de 200 formules différentes. En outre, la bibliothèque dispose de mécanismes très sophistiqués pour référencer les plages de cellules.
GemBox.Spreadsheet est un choix incontournable pour les développeurs qui exigent flexibilité et puissance dans leurs tâches de gestion de feuilles de calcul.
Interopérabilité. GemBox.Spreadsheet peut fonctionner avec les feuilles de calcul Excel, LibreOffice et Open Office,soutenir ou préserver la plupart des caractéristiques uniques de ces produits. C'est pourquoi les développeurs qui ont besoin de feuilles de calcul pour fonctionner avec ces produits de bureautique peuvent considérer GemBox.Spreadsheet comme une alternative intéressante.
Convertibilité. IronXL peut exporter des données dans de nombreux formats ouverts conventionnels(XML, HTML, JSON, CSV, TSV)ainsi que dans n'importe quel type de document Excel. IronXL peut également convertir les données d'une feuille de calcul endonnées binaires, octets et flux de donnéeset aux structures de données System.Data
.
GemBox.Spreadsheet peut également convertir des données de feuilles de calcul vers et depuis les types de données System.Data.DataSet
et System.Data.DataTable
. En outre, la bibliothèque peut importer et exporter en HTML, et peut convertir les données en images et en documents conformes au format PDF/A.
Dans ce cas, le choix du développeur entre les deux bibliothèques dépendra des types de données/fichiers requis dans son projet.
Affordabilité. IronXL et GemBox.Spreadsheet nécessitent tous deux des licences premium pour être utilisés commercialement.
Le facteur décisif entre IronXL et GemBox.Spreadsheet en ce qui concerne le prix sera en fin de compte le budget, la taille des équipes et les considérations de développement à long terme. Il convient toutefois de noter que le prix de départ de la licence IronXL, $749, pourrait être très attractif pour les développeurs et les équipes qui sont sensibles au prix.
Essayez la solution IronXLessai gratuit pour voir l'efficacité d'IronXL. Acheter la version complèteIron Suite pour obtenir quatre bibliothèques supplémentaires pour le prix de deux licences IronXL
9 produits de l'API .NET pour vos documents de bureau