Passer au contenu du pied de page
UTILISATION D'IRONXL

Lisez un fichier CSV en utilisant C# (Exemple de tutoriel de code)

Ce tutoriel démontre comment lire un fichier CSV en utilisant la bibliothèque IronXL C# sans installer d'interop supplémentaires, de manière hautement efficace et performante.

Comment lire les fichiers CSV en C

Vous devez d'abord installer IronXL avant de l'utiliser pour lire les fichiers CSV dans MVC, ASP.NET ou .NET Core. Voici un aperçu de base du processus.

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 Installer 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.

// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook as an Excel file
workbook.SaveAs("Csv_To_Excel.xlsx");
// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook as an Excel file
workbook.SaveAs("Csv_To_Excel.xlsx");
' Load a CSV file into a WorkBook object specifying file format and delimiters
Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")

' Get the default worksheet from the workbook
Dim ws As WorkSheet = workbook.DefaultWorkSheet

' Save the workbook as an Excel file
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 en cours de lecture, qui sont stockés sous forme de tableau de chaînes. Des virgules sont utilisées comme délimiteurs dans ce scénario.

Après cela, un objet WorkSheet est créé ; c'est là que 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 organisées dans la feuille de calcul sous forme tabulaire. La sortie 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 de CSV en C# .NET

Les CSV ont plusieurs problèmes avec la façon dont les sauts de ligne sont gérés dans les champs, et comment les champs peuvent être entourés de guillemets, ce qui empêche une technique de division de chaîne simple de fonctionner Split("'"). Au lieu de cela, IronXL offre la possibilité 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.

Enregistrements C# — Lecture des 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.

// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Convert the worksheet data into a DataTable
DataTable dt = ws.ToDataTable(true); // The argument true indicates the first row is header

// Iterate through each row in the DataTable
foreach (DataRow row in dt.Rows)
{
    // Iterate through each column in the current row
    for (int i = 0; i < dt.Columns.Count; i++)
    {
        // Output each cell value to the console
        Console.Write(row[i] + "  ");
    }
    // New line after each row
    Console.WriteLine();
}
// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Convert the worksheet data into a DataTable
DataTable dt = ws.ToDataTable(true); // The argument true indicates the first row is header

// Iterate through each row in the DataTable
foreach (DataRow row in dt.Rows)
{
    // Iterate through each column in the current row
    for (int i = 0; i < dt.Columns.Count; i++)
    {
        // Output each cell value to the console
        Console.Write(row[i] + "  ");
    }
    // New line after each row
    Console.WriteLine();
}
' Load a CSV file into a WorkBook object specifying file format and delimiters
Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")

' Get the default worksheet from the workbook
Dim ws As WorkSheet = workbook.DefaultWorkSheet

' Convert the worksheet data into a DataTable
Dim dt As DataTable = ws.ToDataTable(True) ' The argument true indicates the first row is header

' Iterate through each row in the DataTable
For Each row As DataRow In dt.Rows
	' Iterate through each column in the current row
	For i As Integer = 0 To dt.Columns.Count - 1
		' Output each cell value to the console
		Console.Write(row(i) & "  ")
	Next i
	' New line after each row
	Console.WriteLine()
Next row
$vbLabelText   $csharpLabel

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

Conversion d'une ligne de chaîne de fichier CSV en format Excel

La procédure est simple : charger un fichier CSV et l'enregistrer sous forme de fichier Excel.

// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx");
// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx");
' Load a CSV file into a WorkBook object specifying file format and delimiters
Dim workbook As WorkBook = WorkBook.LoadCSV("test.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")

' Get the default worksheet from the workbook
Dim ws As WorkSheet = workbook.DefaultWorkSheet

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

Lire et manipuler les fichiers CSV convertis en utilisant IronXL

La classe IronXL WorkBook 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 from a .xlsx file
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
// Load WorkBook from a .xlsx file
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
' Load WorkBook from a .xlsx file
Dim workbook = WorkBook.Load("Spreadsheets\\sample.xlsx")
$vbLabelText   $csharpLabel

Les objets WorkSheet peuvent être trouvés dans de nombreux WorkBooks. Ce sont les feuilles de calcul du document Excel. Si le classeur a des feuilles de calcul, vous pouvez les obtenir par nom en procédant comme suit :

// Open a specific worksheet for reading by its name
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
// Open a specific worksheet for reading by its name
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
' Open a specific worksheet for reading by its name
Dim worksheet = workbook.GetWorkSheet("sheetnamegoeshere")
$vbLabelText   $csharpLabel

Code pour lire les valeurs des cellules :

// Read and output values from a range of cells elegantly
foreach (var cell in worksheet["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Read and output values from a range of cells elegantly
foreach (var cell in worksheet["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
' Read and output values from a range 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 peut mettre à jour des formules ou les appliquer à des cellules spécifiques après le chargement et la lecture du classeur et de la feuille de calcul. Voici le code :

// Set formulas for specific cells
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 for specific cells
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 for specific cells
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 avoir besoin d'Interop, utiliser l'API Excel de IronXL est un jeu d'enfant. De plus, IronXL offre également un large éventail de fonctionnalités pour interagir avec WorkBook, WorkSheet et les cellules Excel, telles que la conversion entre formats populaires, le formatage des données des cellules, la fusion des cellules, l'insertion de fonctions mathématiques, et même la gestion de graphiques et l'ajout d'images.

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

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

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

C'est certainement une option à explorer.

Questions Fréquemment Posées

Comment puis-je lire un fichier CSV en C# ?

Vous pouvez lire un fichier CSV en C# en utilisant la bibliothèque IronXL en employant la méthode LoadCSV, qui vous permet de charger les données CSV dans un objet WorkBook pour une manipulation ultérieure.

Quelle est la meilleure façon de convertir des données CSV en un format Excel en C# ?

La meilleure façon de convertir des données CSV en un format Excel en C# est d'utiliser IronXL. Chargez votre CSV dans un objet WorkBook et utilisez la méthode SaveAs pour l'enregistrer en tant que fichier Excel.

Comment puis-je manipuler des fichiers CSV avec des délimiteurs personnalisés en C# en utilisant une bibliothèque ?

Avec IronXL, vous pouvez manipuler des fichiers CSV avec des délimiteurs personnalisés en spécifiant le délimiteur comme paramètre optionnel dans la méthode LoadCSV.

Puis-je convertir directement des données CSV en un format de base de données en C# ?

Oui, vous pouvez convertir des données CSV en un format de base de données en C# en utilisant IronXL grâce à la méthode ToDataTable, qui transforme les données en un objet DataTable adapté aux opérations de base de données.

Quelles méthodes sont disponibles pour vérifier l'existence de fichiers CSV inexistant en utilisant C# ?

En C#, vous pouvez utiliser la méthode Exists d'IronXL pour vérifier si un fichier CSV existe avant d'essayer de le charger, évitant ainsi les erreurs liées aux fichiers inexistants.

Comment puis-je manipuler les données Excel après les avoir converties depuis CSV en C# ?

Après avoir converti le CSV en Excel en C#, vous pouvez manipuler les données en utilisant les fonctionnalités d'IronXL telles que le formatage, la fusion de cellules, l'insertion de fonctions mathématiques et l'ajout de graphiques ou d'images.

Quels avantages offre IronXL pour la lecture et la conversion de fichiers CSV en C# ?

IronXL offre des avantages tels qu'une installation facile, pas besoin d'interopérabilité supplémentaire, support pour les délimiteurs personnalisés, et des méthodes puissantes pour convertir et manipuler les données CSV dans Excel.

Comment les caractères spéciaux dans les données CSV peuvent-ils être gérés en C# ?

IronXL peut gérer les caractères spéciaux dans les données CSV en vous permettant de spécifier le codage du fichier et les délimiteurs lors du chargement du fichier CSV, assurant l'intégrité et la précision des données.

Quel support est disponible pour les utilisateurs d'IronXL ?

Les licences IronXL incluent un an de support gratuit et de mises à jour, fournissant de l'aide et s'assurant que vous avez les dernières fonctionnalités et correctifs.

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