C# CSV Parser (Step-By-Step) Tutorial

Have you ever been stuck trying to parse CSV files and convert them to XLSX or XLSX files to CSV files for some important task in .NET, but couldn't figure out how to do so without writing tons of code?

There are many CSV libraries that exist to solve this issue. However, in this blog, we'll discuss how to perform these tasks with just two lines of code using the IronXL C# Excel Library.

To get started, all you need is Visual Studio. We'll discuss this installation process in detail below.

1. Creating a New Project in Visual Studio

Open the Visual Studio editor.

Go to the File menu in Visual Studio. Choose "New Project", then select Console Application.

Type the project name and choose the project location. Then, click the Create button to create the project. Select the required .NET Framework, as shown in the screenshot below:

How to Parse CSV Files in C# - Figure 1

Create a New C#.NET Console Application

The program.cs file will open so you can enter the logic and create/run the application.

2. Install the IronXL C# Library

The IronXL library can be downloaded and installed in many different ways. Today, we will focus on two of these:

  • Using the Visual Studio NuGet Package Manager
  • Using the Visual Studio Command-Line

2.1. Using the Visual Studio NuGet Package Manager

The NuGet Package Manager UI is available in Visual Studio to install the package directly into the project. The below screenshot shows how to open it.

How to Parse CSV Files in C# - Figure 2

Installing IronXL using Visual Studio NuGet Package Manager GUI

The Package Manager UI provides a Browse feature that displays a list of the package libraries that are offered on the NuGet website. Enter the "IronXL" keyword, as in the below screenshot, to find the IronXL package.

How to Parse CSV Files in C# - Figure 3

Locate the IronXL library in NuGet Package Manager by searching for it in the Browse section

Select the IronXL.Excel package and click the Install button to add it to the project.

2.2. Using the Visual Studio Command-Line

In the Visual Studio menu, go to Tools, select NuGet Package Manager, and click on Package Manager Console.

How to Parse CSV Files in C# - Figure 4

Access the NuGet Package Manager Console within Visual Studio from the Tools menu.

The Package Manager Console will appear at the bottom of the screen. Just type the following command then press enter, and IronXL will be installed.

Install-Package IronXL.Excel
How to Parse CSV Files in C# - Figure 5

Type Install-Package IronXL.Excel in the Package Manager Console to install the IronXL Library through the commandline

3. Parsing CSV Files

Parsing CSVs manually requires writing a lot of precise code to get the job done, but with IronXL, it requires just a few lines of code.

By using only conventional C# code to parse CSV formatted files, you will have to use a lot of bulky code. Here is an example of code to achieve this.

using FileHelpers;
using System;
namespace parse_csv
{
    [DelimitedRecord(",")]
    public class Record
    {
        public string Name;

        public string Age;
    }
    class Program
    {
        static void Main(string[] args)
        {
            var fileHelperEngine = new FileHelperEngine<Record>();
            var records = fileHelperEngine.ReadFile(@"C:\File\records.csv");

            foreach (var record in records)
            {
                Console.WriteLine(record.Name);
                Console.WriteLine(record.Age);
            }
        }
    }
}
using FileHelpers;
using System;
namespace parse_csv
{
    [DelimitedRecord(",")]
    public class Record
    {
        public string Name;

        public string Age;
    }
    class Program
    {
        static void Main(string[] args)
        {
            var fileHelperEngine = new FileHelperEngine<Record>();
            var records = fileHelperEngine.ReadFile(@"C:\File\records.csv");

            foreach (var record in records)
            {
                Console.WriteLine(record.Name);
                Console.WriteLine(record.Age);
            }
        }
    }
}
Imports FileHelpers
Imports System
Namespace parse_csv
	<DelimitedRecord(",")>
	Public Class Record
		Public Name As String

		Public Age As String
	End Class
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Dim fileHelperEngine As New FileHelperEngine(Of Record)()
			Dim records = fileHelperEngine.ReadFile("C:\File\records.csv")

			For Each record In records
				Console.WriteLine(record.Name)
				Console.WriteLine(record.Age)
			Next record
		End Sub
	End Class
End Namespace
VB   C#

But using IronXL this can be achieved in just a few lines of code.

Using IronXL you can parse CSV files from XLSX, XLS, TSV, and more. In this tutorial, we'll explore the following conversions:

  1. Parse CSV file from XLSX file
  2. Parse CSV file From XLS file
  3. Parse CSV file From TSV file

3.1. Parse a CSV File from an XLSX File

Open Microsoft Excel and create a new XLSX file. Populate its rows and columns with some mock data. The below image shows the file we will use for all conversions in this tutorial.

How to Parse CSV Files in C# - Figure 6

Sample Excel Data

Once you have your file ready, write the following example code and execute the program.

using IronXL;
WorkBook wb = WorkBook.Load("test.xlsx");
wb.SaveAsCsv("Parsed CSV.csv");
using IronXL;
WorkBook wb = WorkBook.Load("test.xlsx");
wb.SaveAsCsv("Parsed CSV.csv");
Imports IronXL
Private wb As WorkBook = WorkBook.Load("test.xlsx")
wb.SaveAsCsv("Parsed CSV.csv")
VB   C#

After the execution is completed a new file name Parsed CSV.csv will be created. Reading CSV files can be done in any editor or reader you like. The below image shows the output of the above command - our generated CSV data. In the output file, double quotation marks represent bold values.

How to Parse CSV Files in C# - Figure 7

The result of invoking WorkBook.SaveAsCsv method on the sample Excel Workbook.

3.2. Parse CSV File from XLS File

In this example, we will see how to convert XLS files into CSV format.

First, let's create an example XLS file that we can convert to CSV format.

How to Parse CSV Files in C# - Figure 8

A sample XLS file

Next, we will execute the block of code below to convert the sample XLS file into a CSV file.

using IronXL;
WorkBook wb = WorkBook.Load("XLS.xls");
wb.SaveAsCsv("Example2.csv");
using IronXL;
WorkBook wb = WorkBook.Load("XLS.xls");
wb.SaveAsCsv("Example2.csv");
Imports IronXL
Private wb As WorkBook = WorkBook.Load("XLS.xls")
wb.SaveAsCsv("Example2.csv")
VB   C#

After the execution of the above code is finished, you will have a newly generated CSV file.

How to Parse CSV Files in C# - Figure 9

An CSV file created from running IronXL's SaveAsCsv method on the sample XLS file created previously.

3.3. Parse CSV file From TSV file

Spreadsheet applications frequently employ TSV files, or Tab-Separated Values files, to transfer data across databases. It saves a data table with tabs separating the data columns and each record being on a different line.

IronXL offers a CSV parser to parse CSV files from TSV format for better data management.

Let's get started with the example.

How to Parse CSV Files in C# - Figure 10

A sample TSV spreadsheet.

using IronXL;
WorkBook wb = WorkBook.Load("TSV.tsv");
wb.SaveAsCsv("Example3.csv");
using IronXL;
WorkBook wb = WorkBook.Load("TSV.tsv");
wb.SaveAsCsv("Example3.csv");
Imports IronXL
Private wb As WorkBook = WorkBook.Load("TSV.tsv")
wb.SaveAsCsv("Example3.csv")
VB   C#

Below is the output in CSV format.

How to Parse CSV Files in C# - Figure 11

An CSV file created from running IronXL's SaveAsCsv method on the sample TSV file created previously.

4. Conclusion

In this tutorial, we learned how to use IronXL to parse varying file formats to CSV in C#.

Check out IronXL's features, Code Examples and documentation content for more information about how IronXL works. Download IronXL and try out free for 30 Days with a trial license key. Visit the Licensing Page for more information about licensing terms and conditions.

Purchase the complete Iron Suite to retrieve licenses for all five Iron Software libraries for the price of two IronXL library licenses!

Thanks for reading!