Test in a live environment
Test in production without watermarks.
Works wherever you need it to.
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.
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.
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
workbook.SaveAs("Csv_To_Excel.xlsx");
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
workbook.SaveAs("Csv_To_Excel.xlsx");
Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet
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
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.
In the example below, the foreach
is used to loop over the rows in the CSV file, and the Console is used to write the data in a record.
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
DataTable dt = ws.ToDataTable(true);//parse sheet1 of sample.xlsx file into datatable
foreach (DataRow row in dt.Rows) //access rows
{
for (int i = 0; i < dt.Columns.Count; i++) //access columns of corresponding row
{
Console.Write(row [i] + " ");
}
Console.WriteLine();
}
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
DataTable dt = ws.ToDataTable(true);//parse sheet1 of sample.xlsx file into datatable
foreach (DataRow row in dt.Rows) //access rows
{
for (int i = 0; i < dt.Columns.Count; i++) //access columns of corresponding row
{
Console.Write(row [i] + " ");
}
Console.WriteLine();
}
Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet
Dim dt As DataTable = ws.ToDataTable(True) 'parse sheet1 of sample.xlsx file into datatable
For Each row As DataRow In dt.Rows 'access rows
For i As Integer = 0 To dt.Columns.Count - 1 'access columns of corresponding row
Console.Write(row (i) & " ")
Next i
Console.WriteLine()
Next row
Accessing data from CSV file and display into the Console
The procedure is straightforward: loading a CSV file and saving as an Excel file.
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
workbook.SaveAs("CsvToExcelConversion.xlsx");
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
workbook.SaveAs("CsvToExcelConversion.xlsx");
Dim workbook As WorkBook = WorkBook.LoadCSV("test.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet
workbook.SaveAs("CsvToExcelConversion.xlsx")
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
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
//Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
'Load WorkBook
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 Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
'Open Sheet for reading
Dim worksheet = workbook.GetWorkSheet("sheetnamegoeshere")
Code for reading the cell values:
// Read from Ranges of cells elegantly.
foreach (var cell in worksheet ["A2:A10"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Read from Ranges of cells elegantly.
foreach (var cell in worksheet ["A2:A10"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
' Read from Ranges 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 to specific cells after loading and reading the workbook and worksheet. The following is the code:
// Set Formulas
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
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
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()
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.
9 .NET API products for your office documents