Read CSV File Using C# (Code Example Tutorial)
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 File Line By Line in C#
- Install C# library to read CSV file line by line
- Utilize advance
LoadCSV
method to read CSV file - Catch loading a nonexistence file with
Exists
method in C# - Convert CSV data into database with
ToDataTable
method - Use
SaveAs
method to export Excel file, while CSV data converted to Excel automatically
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.
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")
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:
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
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")
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")
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")
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
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()
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 $749 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.
Frequently Asked Questions
How can I read a CSV file in C#?
You can read a CSV file in C# using the IronXL library by employing the LoadCSV
method, which allows you to load the CSV data into a WorkBook
object for further manipulation.
What is the best way to convert CSV data to an Excel format in C#?
The best way to convert CSV data to an Excel format in C# is by using IronXL. Load your CSV into a WorkBook
object and use the SaveAs
method to save it as an Excel file.
How do I handle CSV files with custom delimiters in C# using a library?
With IronXL, you can handle CSV files with custom delimiters by specifying the delimiter as an optional parameter in the LoadCSV
method.
Can I convert CSV data directly into a database format in C#?
Yes, you can convert CSV data into a database format in C# using IronXL by utilizing the ToDataTable
method, which transforms the data into a DataTable object suitable for database operations.
What methods are available to check for non-existent CSV files using C#?
In C#, you can use IronXL's Exists
method to check if a CSV file exists before attempting to load it, thus avoiding errors related to non-existent files.
How can I manipulate Excel data after converting from CSV in C#?
After converting CSV to Excel in C#, you can manipulate the data using IronXL's features such as formatting, merging cells, inserting math functions, and adding charts or images.
What advantages does IronXL offer for reading and converting CSV files in C#?
IronXL provides advantages such as easy installation, no need for additional interop, support for custom delimiters, and powerful methods for converting and manipulating CSV data within Excel.
How can special characters in CSV data be handled in C#?
IronXL can handle special characters in CSV data by allowing you to specify the file encoding and delimiters when loading the CSV file, ensuring data integrity and accuracy.
What support is available for IronXL users?
IronXL licenses include one year of free support and updates, providing assistance and ensuring you have the latest features and fixes.