COMPARAISON AVEC D'AUTRES COMPOSANTS

Comparaison entre IronXL et CsvWriter

Publié mai 18, 2022
Partager:

Travailler avec des fichiers CSV peut être une tâche difficile. Cependant, il existe aujourd'hui de nombreuses bibliothèques disponibles pour aider les développeurs dans cette tâche, sans qu'il soit nécessaire d'installer 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, que ce soit au format C# ou au format Excel standard, en utilisant deux des bibliothèques les plus populaires, IronXL et CSVWriter.

Voyons tout d'abord ce que les deux bibliothèques ont à offrir.

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 non plus 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 pour .NET Core et .NET Framework pour C#.

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
  • Plages - feuille de travail facile à utiliser["A1:B10] syntaxe. Combinez et créez des gammes de manière intuitive.
  • Tri - permet de trier les plages, les colonnes et les lignes.
  • Stylisation - styles visuels des cellules, police, taille, motif d'arrière-plan, bordure, alignement et formats des nombres.

CSVWriter

Une bibliothèque .NET pour écrire des fichiers CSV. Extrêmement rapide, flexible et facile à utiliser. Permet d'écrire des objets de classe personnalisés.

Caractéristiques de CsvWriter

  • Rapide : compile les classes à la volée pour une performance extrêmement rapide
  • Flexible : conservateur à l'écrit, libéral à la lecture
  • Facile à utiliser : la lecture et l'écriture sont aussi simples que GetRecords() et WriteRecords(dossiers)
  • Hautement configurable
  • Mode Linux
  • Faible utilisation de la mémoire

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".
  • Dans la page "Créer un nouveau projet", sélectionnez C# dans la liste déroulante du langage, 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.
    Csvhelper Alternatives 1 related to 1. Créer une application console

    Créer un projet - Application console

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

    Csvhelper Alternatives 2 related to 1. Créer une application console

    Créer un projet - Framework .NET

  • 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 la bibliothèque IronXL en utilisant les méthodes suivantes :

  1. Utilisation de Visual Studio avec les paquets NuGet

  2. Télécharger directement le paquet NuGet

  3. Installation manuelle avec 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.

Csvhelper Alternatives 3 related to 2.1. Utilisation de Visual Studio avec les paquets NuGet

Sélection - Gestion - NuGet - Paquet

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

    Csvhelper Alternatives 4 related to 2.1. Utilisation de Visual Studio avec les paquets NuGet

    Recherche d'IronXL

  • Et nous avons terminé.

2.2. Télécharger directement le paquet NuGet

Pour ce faire, il suffit de se rendre directement sur le site de NuGet et de télécharger le paquetage. Les étapes sont les suivantes :

  • Naviguez jusqu'àhttps://www.nuget.org/packages/IronXL.Excel
  • Sélectionnez "Télécharger le paquet"
  • Double-cliquez sur le paquet téléchargé
  • Le paquet sera installé
  • Rechargez votre projet Visual Studio et commencez à l'utiliser

2.3. Installation manuelle avec la DLL

Une autre façon de télécharger et d'installer la bibliothèque IronXL C# est d'utiliser les étapes suivantes pour installer le paquet NuGet IronXL par l'intermédiaire de l'Invite de commande du développeur.

  • Ouvrez l'invite de commande Developer - qui se trouve généralement dans le dossier Visual Studio.
  • Tapez la commande suivante : PM > Install-Package IronXL.Excel
  • Appuyer sur Entrée
  • 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 CsvHelper.

3. Installation de CSVWriter

3.1. Utilisation de la console NuGet Package Manager

Pour travailler avec CSVWriter, vous devez télécharger et installer la bibliothèque C# CsvHelper. Pour ce faire, suivez les étapes suivantes pour installer le paquet NuGet via l'Invite de commande du développeur.

  • Ouvrez l'invite de commande Developer - qui se trouve généralement dans le dossier Visual Studio.
  • Tapez la commande suivante : PM> Install-Package CsvHelper -Version 27.2.1
  • Appuyer sur Entrée
  • Cette opération permet de télécharger et d'installer le paquet
  • Rechargez votre projet Visual Studio et commencez à l'utiliser
  • Consultez les détails de la méthode CsvHelper.CsvWriter pour l'implémentation

3.2. Téléchargement direct

Télécharger à partir du site web de NuGet : https://www.nuget.org/packages/CsvHelper/

4. Travailler avec des fichiers CSV en utilisant IronXL

Valeurs séparées par une virgule(CSV)le fichier est un fichier texte délimité qui utilise une virgule pour séparer les valeurs. Chaque ligne du fichier est un enregistrement de données. Manipuler ces fichiers pour effectuer des calculs peut s'avérer une tâche ardue, mais IronXL offre une option assez bonne et facile pour y parvenir, et ce sans utiliser Microsoft Excel. Commençons par convertir un fichier CSV en un fichier Excel normal.

4.1. Conversion d'un fichier CSV au format Excel

Le processus est assez simple et facile. Cela se fait généralement en une seule ligne de code.

Formats CSV vers Excel:

WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
 
workbook.SaveAs("CsvToExcelConversion.xlsx");
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
 
workbook.SaveAs("CsvToExcelConversion.xlsx");
Dim workbook As WorkBook = WorkBook.LoadCSV("test.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet
'
workbook.SaveAs("CsvToExcelConversion.xlsx")
VB   C#

4.2. Lire et manipuler les fichiers CSV convertis à l'aide d'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 du fichier Excel(.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 WorkBook peut contenir plusieurs objets WorkSheet. Il s'agit des feuilles de calcul du document Excel. Si le classeur contient des 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#

Après avoir chargé et lu 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 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()
VB   C#

4.3. Sauvegarde du document Excel en fichier CSV

L'écriture de fichiers CSV est un processus facile avec IronXL. Le code suivant enregistre simplement le fichier Excel au format CSV en utilisant la méthode SaveAsCsv.

WorkBook wb = WorkBook.Load("Normal_Excel_File.xlsx");
//Import .xls, .csv, or .tsv file
wb.SaveAsCsv("SaveAsCSV.csv", ",");
//Saved as : SaveAsCSV.Sheet1.csv
WorkBook wb = WorkBook.Load("Normal_Excel_File.xlsx");
//Import .xls, .csv, or .tsv file
wb.SaveAsCsv("SaveAsCSV.csv", ",");
//Saved as : SaveAsCSV.Sheet1.csv
Dim wb As WorkBook = WorkBook.Load("Normal_Excel_File.xlsx")
'Import .xls, .csv, or .tsv file
wb.SaveAsCsv("SaveAsCSV.csv", ",")
'Saved as : SaveAsCSV.Sheet1.csv
VB   C#

5. Travailler avec des données CSV en utilisant CSVWriter

L'écriture de données dans un fichier CSV est une opération courante. La méthode CSVHelper CSVWriter avec le séparateur fourni, tous les caractères et les caractères de retour à la ligne peuvent être traités dans un CSV writer très simple publié pour C#. Nous allons voir ici comment écrire des données à l'aide de CSVWriter.

5.1. Créer une application console simple

Créer une simple application console CSVWriter avec séparateur fourni en utilisant Visual Studio. Une fois le projet créé, l'étape suivante consiste à créer une classe Personne :

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public bool IsLiving { get; set; }
}
public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public bool IsLiving { get; set; }
}
Public Class Person
	Public Property Id() As Integer
	Public Property Name() As String
	Public Property IsLiving() As Boolean
End Class
VB   C#

Dans la méthode Main, établissons maintenant une liste d'objets Personne que nous écrirons dans le fichier CSV :

var myPersonObjects = new List<Person>()
{
    new Person { Id = 1, IsLiving = true, Name = "John" },
    new Person { Id = 2, IsLiving = true, Name = "Steve" },
    new Person { Id = 3, IsLiving = true, Name = "James" }
};
var myPersonObjects = new List<Person>()
{
    new Person { Id = 1, IsLiving = true, Name = "John" },
    new Person { Id = 2, IsLiving = true, Name = "Steve" },
    new Person { Id = 3, IsLiving = true, Name = "James" }
};
Dim myPersonObjects = New List(Of Person)() From {
	New Person With {
		.Id = 1,
		.IsLiving = True,
		.Name = "John"
	},
	New Person With {
		.Id = 2,
		.IsLiving = True,
		.Name = "Steve"
	},
	New Person With {
		.Id = 3,
		.IsLiving = True,
		.Name = "James"
	}
}
VB   C#

5.2. Écriture dans un fichier CSV en C# avec les paramètres par défaut

CsvHelper s'est imposé comme le moyen standard d'écrire des fichiers CSV en C# à l'aide de la méthode CSVWriter, et il est très facile à utiliser :

using (var writer = new StreamWriter("filePersons.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
    csv.WriteRecords(myPersonObjects);
}
using (var writer = new StreamWriter("filePersons.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
    csv.WriteRecords(myPersonObjects);
}
Using writer = New StreamWriter("filePersons.csv")
Using csv = New CsvWriter(writer, CultureInfo.InvariantCulture)
	csv.WriteRecords(myPersonObjects)
End Using
End Using
VB   C#

5.3. Ajout de données

Nous devons garder à l'esprit le fait que chaque fois que nous exécutons notre programme, les anciens fichiers CSV seront écrasés. Parfois, nous voulons que les données soient ajoutées à la fin d'un fichier, au lieu d'écraser les données existantes. CSVWriter ne fournit pas de méthode pour le faire, car l'ouverture/écriture d'un fichier n'est pas de la responsabilité de CSVWriter avec le séparateur fourni. Nous pouvons y parvenir en utilisant un FileStream, puis en construisant notre StreamWriter à l'aide de ce FileStream. Bien que cela n'entre pas dans le cadre de cet article, je vous montrerai comment le faire, car cela fait partie intégrante de toute application.

var configPersons = new CsvConfiguration(CultureInfo.InvariantCulture)
{
    HasHeaderRecord = false
};
using (var stream = File.Open("filePersons.csv", FileMode.Append))
using (var writer = new StreamWriter(stream))
using (var csv = new CsvWriter(writer, configPersons))
{
    csv.WriteRecords(myPersonObjects);
}
var configPersons = new CsvConfiguration(CultureInfo.InvariantCulture)
{
    HasHeaderRecord = false
};
using (var stream = File.Open("filePersons.csv", FileMode.Append))
using (var writer = new StreamWriter(stream))
using (var csv = new CsvWriter(writer, configPersons))
{
    csv.WriteRecords(myPersonObjects);
}
Dim configPersons = New CsvConfiguration(CultureInfo.InvariantCulture) With {.HasHeaderRecord = False}
Using stream = File.Open("filePersons.csv", FileMode.Append)
Using writer = New StreamWriter(stream)
Using csv = New CsvWriter(writer, configPersons)
	csv.WriteRecords(myPersonObjects)
End Using
End Using
End Using
VB   C#

L'ajout à un fichier existant est toutefois délicat, car l'ordre peut être modifié au moment de l'ajout, ou de nouvelles propriétés peuvent avoir été ajoutées. Nous devrions veiller à en tenir compte lors de l'ajout.

6. Licences

IronXL est un produit ouvertement commercial Bibliothèque C# pour Excel. 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.

CSVWriter avec le séparateur fourni est un élément séparé par une virgule et entièrement gratuit pour une utilisation commerciale.

7. Résumé et conclusion

Résumé

IronXL est une bibliothèque complète offrant tout ce dont vous avez besoin pour pouvoir manipuler un fichier Excel. Elle vous permet de convertir divers formats en XLSX, ainsi que de XLSX à d'autres formats, tels que CSV. Cette interconversion permet aux utilisateurs de manipuler facilement d'autres formats de fichiers.

D'autre part, CSVWriter ne fonctionne qu'avec les formats de fichiers CSV et avec des options très limitées. Les utilisateurs ne peuvent pas passer d'un format de fichier à l'autre, alors qu'avec IronXL, c'est possible. Tous les exemples de code se trouvent dans les fichiers de documentation de CsvHelper. Ce document fournit des indications sur la manière d'utiliser CSVWriter dans votre projet.

Conclusion

IronXL a un net avantage sur CSVHelper.CSVWriter, car il permet de travailler avec plusieurs formats. De plus, vous pouvez appliquer des formules et des styles selon votre choix, alors que CsvHelper ne permet que la lecture et l'écriture de fichiers CSV, et avec des options limitées. En outre, vous ne pouvez pas ajouter de nouveaux enregistrements à un fichier CSV existant, car cela écrase simplement les entrées précédentes.

< PRÉCÉDENT
Comparaison entre IronXL et Spire XLS
SUIVANT >
Comparaison entre IronXL et CsvHelper