UTILISATION D'IRONXL

Lire un fichier CSV à l'aide de C# (Tutoriel d'exemple de code)

Regan Pun
Regan Pun
juin 29, 2022
Mise à jour janvier 29, 2024
Partager:

Ce tutoriel montre comment lire un fichier CSV à l'aide de la bibliothèque IronXL C# sans installer d'interopérabilité supplémentaire, de manière très efficace.

Comment lire des fichiers CSV en C# ;

Vous devez d'abord installer IronXL avant de l'utiliser pour lire des fichiers CSV dans MVC, ASP.NET ou .NET Core. Voici un aperçu de la procédure.

Sélectionnez le menu Projet dans Visual Studio, Gérer les packages NuGet, recherchez IronXL.Excel et installez.

Lire un fichier CSV en utilisant C# (Exemple de code Tutoriel), Figure 1 : Installer le package IronXL dans le gestionnaire de packages NuGet

Installez le package IronXL dans le gestionnaire de packages NuGet

IronXL est un excellent outil à utiliser lorsque vous avez besoin de lire des fichiers CSV en C#. L'exemple de code ci-dessous montre que vous pouvez lire un fichier CSV en utilisant des virgules ou un autre délimiteur.

WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
workbook.SaveAs("Csv_To_Excel.xlsx");
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
workbook.SaveAs("Csv_To_Excel.xlsx");
Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet
workbook.SaveAs("Csv_To_Excel.xlsx")
$vbLabelText   $csharpLabel

Lire un fichier CSV en utilisant C# (Exemple de code tutoriel), Figure 2 : Données CSV pour ce tutoriel

Données CSV pour ce tutoriel

L'objet WorkBook est créé. La méthode LoadCSV de l'objet WorkBook est ensuite utilisée pour indiquer le nom du fichier CSV, son format, et les délimiteurs utilisés dans le fichier CSV lu, qui sont stockés sous forme de tableau de chaînes. Les virgules sont utilisées comme délimiteurs dans ce scénario.

Après cela, un objet WorkSheet est créé; c'est l'endroit où le contenu du fichier CSV sera stocké. Le fichier est ensuite renommé et stocké dans un nouveau format. Les données du fichier CSV sont ensuite présentées sous forme de tableau dans la feuille de calcul. Le résultat ressemblera à ceci :

Lire un fichier CSV en utilisant C# (Exemple de Code Tutoriel), Figure 3 : Données converties en fichier Excel

Données converties en fichier Excel

Analyse CSV dans C&num ; .NET

Les fichiers CSV présentent plusieurs problèmes concernant la gestion des sauts de ligne dans les champs et la manière dont les champs peuvent être entourés de guillemets, ce qui empêche une technique simple de séparation de chaîne de fonctionner Split("'"). Au lieu de cela, IronXL propose de personnaliser le délimiteur en utilisant le paramètre optionnel de la méthode LoadCSV, consultez la documentation de l'API de LoadCSV pour plus de détails.

C&num ; Enregistrements - Lecture de données CSV

Dans l'exemple ci-dessous, la boucle foreach est utilisée pour parcourir les lignes du fichier CSV, et la Console est utilisée pour écrire les données dans un enregistrement.

WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
DataTable dt = ws.ToDataTable(true);//parse sheet1 of sample.xlsx file into datatable
foreach (DataRow row in dt.Rows) //access rows
{
    for (int i = 0; i < dt.Columns.Count; i++) //access columns of corresponding row
    {
        Console.Write(row [i] + "  ");
    }
    Console.WriteLine();
}
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
DataTable dt = ws.ToDataTable(true);//parse sheet1 of sample.xlsx file into datatable
foreach (DataRow row in dt.Rows) //access rows
{
    for (int i = 0; i < dt.Columns.Count; i++) //access columns of corresponding row
    {
        Console.Write(row [i] + "  ");
    }
    Console.WriteLine();
}
Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet
Dim dt As DataTable = ws.ToDataTable(True) 'parse sheet1 of sample.xlsx file into datatable
For Each row As DataRow In dt.Rows 'access rows
	For i As Integer = 0 To dt.Columns.Count - 1 'access columns of corresponding row
		Console.Write(row (i) & "  ")
	Next i
	Console.WriteLine()
Next row
$vbLabelText   $csharpLabel

Lire un fichier CSV avec C# (Exemple de tutoriel de code), Figure 4 : Accéder aux données du fichier CSV et les afficher dans la Console

Accéder aux données depuis un fichier CSV et les afficher dans la console

Conversion d'un fichier CSV au format Excel

La procédure est simple : chargement d'un fichier CSV et enregistrement dans un fichier 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")
$vbLabelText   $csharpLabel

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

La classe WorkBook d'IronXL représente une feuille Excel et utilise cette classe pour ouvrir un fichier Excel en C#. Les exemples de code ci-dessous chargeront le fichier Excel souhaité dans un objet WorkBook :

//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

Les objets WorkSheet peuvent être trouvés dans de nombreux WorkBooks. Il s'agit des feuilles de calcul du document Excel. Si le classeur contient des feuilles de travail, vous pouvez les obtenir par leur nom en procédant 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 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
$vbLabelText   $csharpLabel

L'exemple de code suivant permet de mettre à jour les formules ou de les appliquer à des cellules spécifiques après le chargement et la lecture du classeur et de la feuille de calcul. 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()
$vbLabelText   $csharpLabel

Conclusion et offre spéciale IronXL

IronXL transforme les CSV en Excel avec seulement deux lignes de code, en plus du traitement des CSV en C#.

Sans interopérabilité, l'utilisation de l'API Excel d'IronXL est un jeu d'enfant. De plus, IronXL offre également une large gamme de fonctionnalités pour interagir avec les niveaux Excel WorkBook, WorkSheet et Cells, telles que la conversion entre des formats populaires, le formatage des données de cellule, la fusion des cellules, l'insertion de fonctions mathématiques, et même la gestion de graphiques et l'ajout d'images.

Vous pouvez lancer sans filigrane en utilisant les clés de licence d'essai d'IronXL.

Les licences commencent à $749 et incluent un an de support et de mises à jour gratuits.

IronPDF, IronXL, IronOCR, IronBarcode et l'IronWebscraper font tous partie de la suite Iron Software. Iron Software vous permet d'acheter l'ensemble de ses outils à un prix réduit. Vous pouvez utiliser tous ces outils pour le prix de deux.

C'est une option qui mérite d'être explorée.

Regan Pun
Ingénieur logiciel
Regan est diplômé de l'université de Reading, où il a obtenu une licence en ingénierie électronique. Avant de rejoindre Iron Software, il s'était concentré sur une seule tâche. Ce qu'il apprécie le plus chez Iron Software, c'est la diversité des tâches qu'il peut accomplir, qu'il s'agisse d'apporter une valeur ajoutée aux ventes, à l'assistance technique, au développement de produits ou à la commercialisation. Il aime comprendre comment les développeurs utilisent la bibliothèque d'Iron Software et utiliser ces connaissances pour améliorer continuellement la documentation et développer les produits.
< PRÉCÉDENT
Comment utiliser un analyseur CSV en C#
SUIVANT >
C# Ouvrir un fichier Excel par programme (Tutoriel d'exemple de code)