Passer au contenu du pied de page
UTILISATION D'IRONXL

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

This tutorial demonstrates how to read a CSV file using the IronXL C# library without installing additional interop, in a highly efficient and effective manner.

How to read CSV Files in C#

You must first install IronXL before using it to read CSV files in MVC, ASP.NET, or .NET Core. Here's a basic rundown of the process.

Select the Project menu in Visual Studio, Manage NuGet Packages, and Search for IronXL.Excel, and Install.

Read CSV File Using C# (Code Example Tutorial), Figure 1: Install the IronXL package in the NuGet Package Manager Install the IronXL package in the NuGet Package Manager

IronXL is a great tool to use when you need to read CSV files in C#. The code example below shows that you can read a CSV file using commas or another delimiter.

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

Read CSV File Using C# (Code Example Tutorial), Figure 2: CSV data for this tutorial CSV data for this tutorial

The object WorkBook is created. The WorkBook object's LoadCSV method is then used to indicate the name of the CSV file, its format, and the delimiters used in the CSV file being read, which are stored as a string array. Commas are utilized as delimiters in this scenario.

After that, a WorkSheet object is created; this is where the CSV file contents will be stored. The file is then renamed and stored in a new format. The CSV file data is then arranged in the worksheet in a tabular form. The output will look something like this:

Read CSV File Using C# (Code Example Tutorial), Figure 3: Data converted into Excel file Data converted into Excel file

CSV parsing in C# .NET

CSVs have several issues with how line breaks are handled in fields, and how fields might be enclosed in quotes, which prevents a simple string-split technique from working Split("'"). Instead, IronXL offers to customize delimiter using optional parameter from LoadCSV method, check the API documentation of LoadCSV for more details.

C# Records — Reading CSV Data

In the example below, the foreach loop is used to iterate over the rows in the CSV file, and the Console is used to write the data in a record.

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

Read CSV File Using C# (Code Example Tutorial), Figure 4: Accessing data from CSV file and display into the Console Accessing data from CSV file and display into the Console

Converting a CSV File string line to Excel Format

The procedure is straightforward: loading a CSV file and saving it as an Excel file.

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

Read and Manipulate Converted CSV Files using IronXL

The IronXL WorkBook class represents an Excel sheet and uses this class to open an Excel file in C#. The code examples below will load the desired Excel file into a WorkBook object:

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

WorkSheet objects can be found in numerous WorkBooks. These are the Excel document's worksheets. If the workbook has worksheets, you can get them by name by doing the following:

// 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 for reading the cell values:

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

The following code sample can update formulas or apply them to specific cells after loading and reading the workbook and worksheet. The following is the 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 and IronXL Special Offer

IronXL transforms CSVs to Excel with just two lines of code, in addition to CSV processing in C#.

Without the need for Interop, using IronXL's Excel API is a breeze. Furthermore, IronXL also offers a wide range of features to interact with Excel WorkBook, WorkSheet and Cells level such as converting between popular formats, cell data formatting, merging cells, inserting math functions, and even managing charts and adding images.

You can launch without a watermark using IronXL trial licensing keys.

Licenses start at $799 and include one year of free support and updates.

IronPDF, IronXL, IronOCR, IronBarcode, and the IronWebscraper are all part of the Iron Software suite. Iron Software allows you to purchase their entire package for a reduced price. You can use all those tools at the price of two.

This is definitely an option worth exploring.

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 conversion à partir de 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