Passer au contenu du pied de page
COMPARER à D'AUTRES COMPOSANTS

Une comparaison entre IronXL et CsvWriter

Travailler avec des fichiers CSV peut s'avérer une tâche complexe. Cependant, il existe aujourd'hui de nombreuses bibliothèques disponibles pour aider les développeurs dans cette tâche, et ce sans qu'il soit nécessaire d'avoir Microsoft Excel installé.

Dans cet article, nous allons examiner et comparer comment travailler par programmation avec des documents Microsoft Excel en C# .NET, au format CSV ou au format Excel standard, en utilisant deux des bibliothèques les plus populaires : IronXL et CSVWriter.

Commençons par examiner ce que les deux bibliothèques ont à offrir.

La bibliothèque IronXL

IronXL est une bibliothèque .NET qui facilite la lecture et la modification des 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, de modifier et de créer des fichiers de tableur Excel dans .NET avec des performances ultra-rapides. IronXL prend entièrement en charge .NET Core, .NET Framework, Xamarin, les applications mobiles, Linux, macOS et Azure.

IronXL est une bibliothèque de tableur Excel de premier plan pour C#, compatible avec .NET Core et .NET Framework.

Ensemble de fonctionnalités d'IronXL

  • Charger, lire et modifier des données — à partir de fichiers XLS/XLSX/CSV/TSV
  • Enregistrement et exportation — aux formats XLS/XLSX/CSV/TSV/JSON
  • Plages — syntaxe WorkSheet ["A1:B10"] facile à utiliser. Combinez et créez des gammes intuitivement.
  • Tri — trier les plages, les colonnes et les lignes.
  • Mise en forme — styles visuels des cellules, police, taille, motif d'arrière-plan, bordure, alignement et formats numériques.

Écrivain CSV

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

Fonctionnalités de CsvWriter

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

1. Créer une application console

Suivez les étapes ci-dessous pour créer une application console :

  • Démarrez 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 Langage, Windows dans la liste Plateformes et Console dans la liste " Types de projets ".
  • Sélectionnez Application console (.NET Framework) parmi les 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 supplémentaires , spécifiez 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 - .NET Framework

  • 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 à notre projet. Commençons par installer IronXL.

2. Installation de la bibliothèque IronXL C

Vous pouvez télécharger et installer la bibliothèque IronXL en utilisant les méthodes suivantes :

  1. Utilisation de Visual Studio avec les packages NuGet
  2. Télécharger directement le Package NuGet
  3. Installation manuelle avec la DLL

Examinons-les de plus près.

2.1. Utilisation de Visual Studio avec les packages NuGet

Visual Studio fournit le gestionnaire de paquets NuGet pour installer des paquets NuGet dans vos projets. Vous pouvez y accéder via le Menu Projet, ou en cliquant avec le bouton droit sur votre projet dans l'Explorateur de solutions.

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

Sélectionner-Gérer-Package-NuGet

  • Maintenant, depuis l'onglet Parcourir -> recherchez IronXL.Excel -> Installer
Csvhelper Alternatives 4 related to 2.1. Utilisation de Visual Studio avec les packages NuGet

Rechercher IronXL

Et voilà, c'est terminé.

2.2. Télécharger directement le package NuGet

Cela peut être fait en visitant directement le site de NuGet et en téléchargeant le paquet. Les étapes sont :

  • Navigate tohttps://www.nuget.org/packages/IronXL.Excel
  • Sélectionnez " Télécharger le package " Double-cliquez sur le package 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# consiste à suivre les étapes suivantes pour installer le package IronXLNuGet via l'invite de commandes développeur.

  • Ouvrez l'invite de commandes développeur — généralement située dans le dossier Visual Studio.
  • Saisissez la commande suivante :
    Install-Package IronXL.Excel

    Appuyez sur Entrée. Cela téléchargera et installera le package Rechargez votre projet Visual Studio et commencez à l'utiliser.

2.4. Ajouter les directives using nécessaires

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le fichier Program.cs, puis cliquez sur Afficher le code.
  2. Ajoutez les directives using suivantes en haut du fichier de code :
using IronXL;
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

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 du gestionnaire de packages NuGet

Pour utiliser CSVWriter, vous devez télécharger et installer la bibliothèque C# CsvHelper. Pour ce faire, suivez les étapes suivantes pour installer le package NuGet via l'invite de commandes développeur.

  • Ouvrez l'invite de commandes développeur — généralement située dans le dossier Visual Studio.
  • Saisissez la commande suivante :
    Install-Package CsvHelper -Version 27.2.1

    Appuyez sur Entrée. Cela téléchargera et installera le package 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

Download from the NuGet website: https://www.nuget.org/packages/CsvHelper/

4. Utilisation des fichiers CSV avec IronXL

Un fichier CSV (Comma-Separated Values) 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. La manipulation de ces fichiers pour effectuer des calculs peut s'avérer complexe, mais IronXL offre une solution simple et efficace 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 avec une seule ligne de code.

Conversion de fichiers CSV en formats Excel :

// Load the CSV file and specify the format and delimiter
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
// Get the default worksheet
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx");
// Load the CSV file and specify the format and delimiter
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
// Get the default worksheet
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx");
' Load the CSV file and specify the format and delimiter
Dim workbook As WorkBook = WorkBook.LoadCSV("test.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
' Get the default worksheet
Dim ws As WorkSheet = workbook.DefaultWorkSheet

' Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx")
$vbLabelText   $csharpLabel

4.2. Lire et manipuler des fichiers CSV convertis à l'aide d'IronXL

La classe IronXLWorkBook représente une feuille Excel. Pour ouvrir un fichier Excel en utilisant C#, nous utilisons WorkBook.Load et spécifions le chemin d'accès au fichier Excel (.xlsx). La ligne de code suivante permet d'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")
$vbLabelText   $csharpLabel

Chaque classeur peut contenir plusieurs objets WorkSheet. Ce sont 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")
$vbLabelText   $csharpLabel

Code pour lire les 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
$vbLabelText   $csharpLabel

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 appliquer des formules à des cellules spécifiques. Le code se présente comme suit :

// 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()
$vbLabelText   $csharpLabel

4.3. Enregistrement du document Excel au format CSV

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

// Load the workbook
WorkBook wb = WorkBook.Load("Normal_Excel_File.xlsx");
// Save as .csv file
wb.SaveAsCsv("SaveAsCSV.csv", ",");
// Saved as : SaveAsCSV.Sheet1.csv
// Load the workbook
WorkBook wb = WorkBook.Load("Normal_Excel_File.xlsx");
// Save as .csv file
wb.SaveAsCsv("SaveAsCSV.csv", ",");
// Saved as : SaveAsCSV.Sheet1.csv
' Load the workbook
Dim wb As WorkBook = WorkBook.Load("Normal_Excel_File.xlsx")
' Save as .csv file
wb.SaveAsCsv("SaveAsCSV.csv", ",")
' Saved as : SaveAsCSV.Sheet1.csv
$vbLabelText   $csharpLabel

5. Utilisation des données CSV avec CSVWriter

L'écriture de données dans un fichier CSV est une opération courante. La méthode CSVWriter de CSVHelper avec séparateur fourni gère tous les caractères et les caractères de nouvelle ligne dans un enregistreur CSV très simple publié pour C#. Nous allons ici examiner comment écrire des données à l'aide de CSVWriter.

5.1. Créer une application console simple

Créez une application console simple CSVWriter avec séparateur fourni à l'aide de 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
$vbLabelText   $csharpLabel

Dans la méthode Main, créons maintenant une liste d'objets Person 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"
	}
}
$vbLabelText   $csharpLabel

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

CsvHelper s'est imposé comme la méthode standard pour é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
$vbLabelText   $csharpLabel

5.3. Ajout de données

Il faut garder à l'esprit qu'à chaque exécution de notre programme, les anciens fichiers CSV seront écrasés. Parfois, nous souhaitons que les données soient ajoutées à la fin d'un fichier, au lieu d'écraser les données existantes. CSVWriter ne propose pas de méthode pour cela, car l'ouverture/l'écriture d'un fichier avec séparateur fourni n'est pas de sa responsabilité. Nous pouvons y parvenir en utilisant un FileStream, puis en construisant notre StreamWriter à partir de ce FileStream. Bien que cela ne relève pas du champ d'application de cet article, je vais vous montrer comment procéder, 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
$vbLabelText   $csharpLabel

L'ajout à un fichier existant est toutefois délicat, car l'ordre des éléments peut être modifié lors 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. Licence

IronXL is an openly commercial C# Excel library. It is free for development and can always be licensed for commercial deployment.Licenses are availablefor single-project use, single developers, agencies, and global corporations, as well as SaaS and OEM redistribution. Toutes les licences incluent une garantie de remboursement de 30 jours, un an de support produit et de mises à jour, validité pour dev/staging/production, et également une licence permanente (achat unique). Le package Lite commence par $799 .

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

7. Résumé et conclusion

Résumé

IronXL est une bibliothèque complète offrant tout le nécessaire pour manipuler un fichier Excel. Elle permet de convertir différents formats en XLSX, et inversement, de XLSX vers d'autres formats, comme CSV. Cette interconversion offre aux utilisateurs une grande flexibilité pour manipuler facilement d'autres formats de fichiers.

En revanche, 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 à un autre, contrairement à ce qui est possible avec IronXL. Tous les exemples de code se trouvent dans les fichiers de documentation de CsvHelper. Ce document fournit des instructions sur la manière d'utiliser CSVWriter dans votre projet.

Conclusion

IronXL présente un net avantage sur CSVHelper.CSVWriter, car il prend en charge la gestion de 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. De plus, vous ne pouvez pas ajouter de nouveaux enregistrements à un fichier CSV existant, car cela écrase simplement les entrées précédentes.

Questions Fréquemment Posées

Quelles sont les alternatives à CSVWriter pour gérer les documents Excel en C# ?

IronXL est une excellente alternative à CSVWriter pour gérer les documents Excel en C#. Il vous permet de lire, éditer et exporter divers formats Excel tels que XLS, XLSX, CSV et TSV sans nécessiter Microsoft Excel.

Comment puis-je convertir un fichier CSV en format Excel en utilisant une bibliothèque .NET ?

En utilisant IronXL, vous pouvez facilement convertir un fichier CSV en format Excel en chargeant le CSV dans un classeur, puis en le sauvegardant sous forme de fichier XLSX. Ce processus implique des commandes de code simples pour manipuler et sauvegarder les fichiers.

Quels avantages offre IronXL par rapport à CSVWriter ?

IronXL offre plusieurs avantages par rapport à CSVWriter, notamment la prise en charge de plusieurs formats de fichiers, la capacité d'appliquer des formules Excel, et des fonctionnalités avancées telles que le tri et le style des données. En revanche, CSVWriter est limité à la gestion des fichiers CSV.

Comment installer IronXL dans mon projet C# ?

Vous pouvez installer IronXL dans votre projet C# via le gestionnaire de paquets NuGet dans Visual Studio. Alternativement, vous pouvez télécharger le paquet NuGet ou installer manuellement la DLL via l'invite de commande développeur.

IronXL peut-il être utilisé dans les environnements .NET Core et Azure ?

Oui, IronXL prend en charge plusieurs plateformes, y compris .NET Core et Azure, ce qui en fait un choix polyvalent pour développer des applications nécessitant une manipulation de fichiers Excel dans différents environnements.

Est-il possible d'écrire des objets de classe personnalisés dans un fichier CSV en utilisant CSVWriter ?

Oui, CSVWriter prend en charge l'écriture d'objets de classe personnalisés dans un fichier CSV. Il fournit une approche flexible et facile à utiliser pour écrire des données efficacement tout en travaillant avec des fichiers CSV.

Quelles sont les exigences en matière de licence pour utiliser IronXL dans des applications commerciales ?

IronXL nécessite une licence pour une utilisation commerciale. Il est gratuit à des fins de développement, mais différentes licences sont disponibles en fonction des besoins de déploiement, que ce soit pour des projets individuels ou des applications de niveau entreprise.

Comment IronXL gère-t-il les formules Excel ?

IronXL vous permet d'appliquer et de manipuler des formules Excel au sein de vos feuilles de calcul, offrant une fonctionnalité robuste pour le calcul de données dynamiques et l'analyse directement dans vos applications C#.

Quels sont les problèmes courants de dépannage lors de l'utilisation d'IronXL ?

Les problèmes de dépannage courants avec IronXL peuvent inclure la compatibilité des formats de fichiers, les incompatibilités de types de données ou les erreurs d'installation. Assurer que vos références de projet sont correctement configurées et vérifier les formats de données peut aider à résoudre ces problèmes.

IronXL peut-il ajouter des données à un fichier Excel existant ?

Oui, IronXL peut ajouter des données à un fichier Excel existant. Il vous permet d'ouvrir un classeur existant, de le modifier en ajoutant de nouvelles données, puis de sauvegarder les modifications sans écraser le contenu existant.

Jordi Bardia
Ingénieur logiciel
Jordi est le plus compétent en Python, C# et C++, et lorsqu'il ne met pas à profit ses compétences chez Iron Software, il programme des jeux. Partageant les responsabilités des tests de produit, du développement de produit et de la recherche, Jordi apporte une immense valeur à l'amé...
Lire la suite