Passer au contenu du pied de page
UTILISATION D'IRONXL

Comment lire un fichier CSV en C#

This article will explore how to create a C# CSV Reader using the IronXL library.

IronXL - Excel Library

IronXL is a powerful Excel library that provides C# developers with the ability to create, load, read, and edit Excel spreadsheets in various formats. Designed specifically for .NET, IronXL prioritizes speed, accuracy, and ease of use. It allows for saving Excel files in different formats and loading various spreadsheet formats into Excel for efficient data reading.

IronXL supports Excel workbook formats with different file extensions, including CSV and TSV, XLS and XLSX, XSLT and XLSM. It is compatible with the latest version of the .NET Framework, as well as all previous versions up to 2.0. IronXL can be used on various platforms, including Linux, MacOS, Azure, Docker, and AWS.

How to make a CSV Reader in C# using IronXL?

Prerequisites

To convert data from a CSV file to an Excel file and read it in C#, we require the following tools:

  1. Visual Studio: is an essential Integrated Development Environment (IDE) for working on C# .NET applications. It is the official and recommended IDE for developing C# apps, and it can be downloaded and installed from the Microsoft website. However, other IDEs that support a C# environment can also be used if preferred by the developer.
  2. Create Console App: Follow the steps to create a simple Console Application.

    • Open Visual Studio and click "Create a Project".

      How to Read CSV File in C#, Figure 2: New Project Window New Project Window

    • Choose "Console App" from the list of options available. Make sure the selected language is C#.

      How to Read CSV File in C#, Figure 3: Create a new Console App Create a new Console App

    • Next, name your project whatever you want.

      How to Read CSV File in C#, Figure 4: Configuration Configuration

    • The next step in project configuration is selecting the .NET Framework. The latest version available is .NET 7.0, which is supported in the standard term. However, to avoid any potential errors, you can opt for the more stable version of .NET 6.0, as Microsoft provides long-term support for it. It's important to choose the appropriate version based on your specific requirements.
  3. IronXL - It is the .NET Excel library that is designed to work with Excel spreadsheets. It must be installed in your C# application before using it. You can download and install the package from multiple sources:
    1. NuGet - the package manager for .NET. You can directly download IronXL from the NuGet website.
    2. Visual Studio NuGet Package Manager: Open the Package Manager by going to Tools > NuGet Package Manager > Manage Packages for Solution...
    3. Download the IronXL .NET Excel DLL zip file directly from the Iron website and add it to the Project Solution as a project reference.

Add IronXL Namespace

Once you have the prerequisites, the next step is to add the IronXL namespace on top of the source code in the main.cs file:

using IronXL;
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

Open an Existing CSV File

IronXL provides an easy way to read CSV files in C#. First, open a CSV file for reading. It is a file type which is based on rows and columns. Here, the WorkBook class is used along with its LoadCSV method to open a CSV file. The code is as follows:

// Load the CSV file and convert it to XLSX format.
var csv = WorkBook.LoadCSV("color_srgb.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
// Load the CSV file and convert it to XLSX format.
var csv = WorkBook.LoadCSV("color_srgb.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
' Load the CSV file and convert it to XLSX format.
Dim csv = WorkBook.LoadCSV("color_srgb.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
$vbLabelText   $csharpLabel

The LoadCSV method in IronXL allows you to open a CSV file and convert it to XLSX format. This method provides options to specify the list delimiter used in the CSV file. In this example, the default delimiter, which is a comma, is used. The resulting file is opened and can be further processed using IronXL's features for reading and manipulating Excel spreadsheets.

How to Read CSV File in C#, Figure 5: CSV File CSV File

Get Worksheet from CSV Reader Class

In the previous step, the CSV file was opened as an Excel workbook using IronXL. Now, get the default worksheet from the workbook using the WorkSheet class. The following example demonstrates how to get the worksheet for reading CSV data:

// Retrieve the default worksheet from the loaded workbook.
WorkSheet ws = csv.DefaultWorkSheet;
// Retrieve the default worksheet from the loaded workbook.
WorkSheet ws = csv.DefaultWorkSheet;
' Retrieve the default worksheet from the loaded workbook.
Dim ws As WorkSheet = csv.DefaultWorkSheet
$vbLabelText   $csharpLabel

For more information on working with Excel worksheets, you can visit this code examples page.

Read CSV Data using C# DataTable

Once the CSV is loaded successfully and the data is available as a worksheet, the data can be read from the CSV file very easily in a C# DataTable.

Convert Worksheet to DataTable

First, create a DataTable instance and convert the worksheet data to a table using the ToDataTable method. The following code helps to achieve this task:

// Convert the worksheet data to a DataTable.
DataTable dt = ws.ToDataTable(true);
// Convert the worksheet data to a DataTable.
DataTable dt = ws.ToDataTable(true);
' Convert the worksheet data to a DataTable.
Dim dt As DataTable = ws.ToDataTable(True)
$vbLabelText   $csharpLabel

Start Reading CSV Data

Now, iterate through all the records using the DataTable instance. The data is received in rows and columns. First, then move through each column to get its value. To get all the records along with the header row, use the following code snippet:

// Iterate over each row in the DataTable.
foreach (DataRow row in dt.Rows)
{
    // Iterate over each column in the current row.
    for (int i = 0; i < dt.Columns.Count; i++)
    {
        // Print each column value in the current row.
        Console.Write(row[i] + "  ");
    }
    // Move to the next line after printing all columns of the current row.
    Console.WriteLine();
}
// Iterate over each row in the DataTable.
foreach (DataRow row in dt.Rows)
{
    // Iterate over each column in the current row.
    for (int i = 0; i < dt.Columns.Count; i++)
    {
        // Print each column value in the current row.
        Console.Write(row[i] + "  ");
    }
    // Move to the next line after printing all columns of the current row.
    Console.WriteLine();
}
' Iterate over each row in the DataTable.
For Each row As DataRow In dt.Rows
	' Iterate over each column in the current row.
	For i As Integer = 0 To dt.Columns.Count - 1
		' Print each column value in the current row.
		Console.Write(row(i) & "  ")
	Next i
	' Move to the next line after printing all columns of the current row.
	Console.WriteLine()
Next row
$vbLabelText   $csharpLabel

In the above code, a foreach loop is used to get a single record from a collection of rows. Then inside a nested for loop, the number of columns is counted and finally, the data from each row is printed on the screen. The output is formatted similarly to a CSV file.

How to Read CSV File in C#, Figure 6: Output Output

Summary

This article demonstrated how to create a CSV reader in C# using the IronXL library. Loading CSV files is made easy with IronXL as it supports the CSV format in Excel spreadsheets. The DataTable object is used to create an elegant CSV reader and format the output to match the original file.

IronXL also provides convenient conversion between different file formats and allows for creating Excel files from scratch without requiring Interop and Microsoft Excel to be installed. It is also compatible with C# DataSet and DataTable, providing developers with flexibility in interconverting data without relying on third-party applications. With its powerful features, IronXL is a valuable tool for C# developers to work with Excel spreadsheets and handle CSV data efficiently.

IronXL is free for development. However, for commercial use, you need to purchase its license starting from $799. You can also use its free trial to test its compiled .dll compatibility with your project in production mode.

Questions Fréquemment Posées

Comment créer un lecteur CSV en C# sans utiliser Interop?

Vous pouvez créer un lecteur CSV en C# sans utiliser Interop en tirant parti de la bibliothèque IronXL. Tout d'abord, installez IronXL via NuGet ou téléchargez la DLL Excel .NET depuis le site IronXL. Ajoutez l'espace de noms IronXL dans votre code et utilisez la méthode WorkBook.LoadCSV pour charger un fichier CSV, vous permettant de le manipuler comme un classeur Excel.

Quels sont les avantages d'utiliser IronXL pour les opérations CSV en C#?

IronXL offre une solution puissante et flexible pour gérer les opérations CSV en C#. Il permet aux développeurs de charger, lire et convertir des fichiers CSV au format Excel sans avoir besoin de Microsoft Excel ou Interop, le rendant compatible avec diverses plateformes comme Linux, MacOS et les services cloud tels qu'Azure et AWS.

Comment peut-on convertir des données CSV au format Excel en utilisant IronXL?

Pour convertir des données CSV au format Excel en utilisant IronXL, chargez le fichier CSV avec la méthode WorkBook.LoadCSV puis enregistrez-le en utilisant la méthode WorkBook.SaveAs, en spécifiant le format Excel souhaité tel que XLSX.

Est-il possible de lire des données CSV dans une DataTable en C# en utilisant IronXL?

Oui, vous pouvez lire des données CSV dans une DataTable en C# en utilisant IronXL. Chargez le CSV comme un classeur, accédez à la feuille de travail par défaut, et utilisez la méthode Range.ToDataTable pour convertir les données de la feuille de travail en DataTable pour une manipulation et une itération faciles.

Quelles plateformes sont compatibles avec la bibliothèque IronXL?

La bibliothèque IronXL est compatible avec de multiples plateformes, y compris Windows, Linux, MacOS, Azure, Docker et AWS. Ce support multiplateforme en fait un choix polyvalent pour les développeurs travaillant dans des environnements divers.

IronXL peut-il être utilisé pour des projets commerciaux?

Oui, IronXL peut être utilisé pour des projets commerciaux. Bien qu'il propose un essai gratuit pour le développement et les tests, une licence commerciale est requise pour une utilisation en production. Cette licence donne accès à la gamme complète de fonctionnalités et de support.

Comment IronXL améliore-t-il la manipulation des données CSV dans les applications C#?

IronXL améliore la manipulation des données CSV dans les applications C# en permettant aux développeurs de charger et modifier des fichiers CSV sans dépendre de Microsoft Excel. Il offre des méthodes pour convertir entre les formats CSV et Excel, rendant la gestion des données plus flexible et efficace.

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