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?

Many CSV libraries exist to solve this issue. However, the IronXL C# Excel Library will be used in this blog to perform these tasks with just two lines of code.

To get started, all you need is Visual Studio, and follow the instructions to install 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:

C# CSV Parser (Step-By-Step) Tutorial, Figure 1: Create a new C#. NET Console Application 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.

C# CSV Parser (Step-By-Step) Tutorial, Figure 2: Installing IronXL using Visual Studio NuGet Package Manager GUI 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.

C# CSV Parser (Step-By-Step) Tutorial, Figure 3: Locate the IronXL library in NuGet Package Manager by searching for it in the Browse section 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 > NuGet Package Manager > click on Package Manager Console.

C# CSV Parser (Step-By-Step) Tutorial, Figure 4: Access the NuGet Package Manager Console within Visual Studio from the Tools menu 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

C# CSV Parser (Step-By-Step) Tutorial, Figure 5: Install the IronXL library through the Command-Line Install the IronXL library through Command-Line

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 used for all conversions in this tutorial.

C# CSV Parser (Step-By-Step) Tutorial, Figure 6: Sample Excel data 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.

C# CSV Parser (Step-By-Step) Tutorial, Figure 7: The result of invoking WorkBook.SaveAsCsv method on the sample Excel Workbook 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.

C# CSV Parser (Step-By-Step) Tutorial, Figure 8: A sample XLS file 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.

C# CSV Parser (Step-By-Step) Tutorial, Figure 9: The result CSV file from saving using the code above The result CSV file from saving using the code above

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.

C# CSV Parser (Step-By-Step) Tutorial, Figure 10: A sample TSV spreadsheet 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. C# CSV Parser (Step-By-Step) Tutorial, Figure 11: The output CSV file The output CSV file

4. Conclusion

This tutorial uses IronXL to parse varying file formats to CSV in C#.

Additionally, the IronXL library also provides the following features:

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!