How To Write Data in CSV File in C#
This article will explore how to write a CSV file using IronXL.
IronXL Library
IronXL is a .NET Excel library that offers comprehensive functionality for creating, reading, and editing spreadsheet files in C# applications. It excels in terms of performance and output accuracy. It supports various spreadsheet workbook file formats such as XLS, XLSX, XLSM, CSV, and TSV. Additionally, it enables you to save or export data from Excel files to formats like CSV, JSON, HTML, Binary, Byte Array, DataSet, or DataTable.
With IronXL, developers can seamlessly work with worksheets and cell ranges, providing an elegant approach to manipulating data. It allows for easy editing of formulas and facilitates the recalculation of formulas within a sheet. Sorting data based on range, column, or row is straightforward. You can also modify layouts by freezing panes, auto-sizing rows/columns, and adding/removing rows/columns.
IronXL offers the ability to protect Excel files with user passwords and set permissions for editing. Furthermore, it provides features to add, remove, and extract images from Excel worksheets. The library includes a wide range of Excel functions, supporting various cell data formats. This makes IronXL one of the most intuitive APIs for working with Excel files.
A notable advantage of IronXL is that it does not require Microsoft Excel or Office Interop dependencies to be installed on the machine. It is a self-contained solution that works across multiple platforms and is compatible with .NET versions 7, 6, and 5. It also supports .NET Core 2 and 3, as well as the standard 2 version. For working with Excel spreadsheets, IronXL is compatible with .NET Framework 4.5 and later versions.
Create a Console Application
Visual Studio's latest version is recommended for creating an application to start with. Visual Studio is the official IDE for C# development, and you must have installed it. You can download it from the Microsoft Visual Studio website, if not installed.
The following steps will create a new project named "DemoApp".
Open Visual Studio and click on "Create a New Project".
Open Visual Studio
Select Console Application and click "Next".
Create a new project in Visual Studio
Set the name of the project
Configure your new project
Select the .NET version. Choose the stable version .NET 6.0.
.NET Framework selection
Install IronXL Library
Once the project is created, the IronXL library needs to be installed in the project to use it. Follow these steps to install it.
Open NuGet Package Manager either from the Solution Explorer or tools.
Navigate to NuGet Package Manager
Browse for IronXL Library and select the current project. Click install.
Search and install the IronXL package in NuGet Package Manager UI
Add the following namespace at the top of Program.cs
file:
using IronXL;
using IronXL;
Imports IronXL
Create a New Workbook in C#
IronXL provides the facility to create an empty workbook. A workbook is a spreadsheet which contains multiple worksheets. The data is stored in cells. CSV also looks like a spreadsheet but instead with a CSV file extension.
// Creates a new instance of WorkBook Spreadsheet
WorkBook workBook = WorkBook.Create();
// Creates a new instance of WorkBook Spreadsheet
WorkBook workBook = WorkBook.Create();
' Creates a new instance of WorkBook Spreadsheet
Dim workBook As WorkBook = WorkBook.Create()
Now, let's create a sheet in the WorkBook
. There are multiple ways to create a worksheet in the workbook.
// Adds a default sheet to the workbook
WorkSheet defaultSheet = workBook.DefaultWorkSheet;
// Creates a worksheet with the name "Sheet1"
WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");
// Adds a default sheet to the workbook
WorkSheet defaultSheet = workBook.DefaultWorkSheet;
// Creates a worksheet with the name "Sheet1"
WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");
' Adds a default sheet to the workbook
Dim defaultSheet As WorkSheet = workBook.DefaultWorkSheet
' Creates a worksheet with the name "Sheet1"
Dim sheet As WorkSheet = workBook.CreateWorkSheet("Sheet1")
If you want to add more sheets to your existing workbook, then use the CreateWorkSheet
method.
Note: You can use WorkBook.LoadCSV
method if the CSV file already exists. You can see this code example page for loading an existing CSV file.
Write Data to the WorkSheet
Writing CSV files is easy using IronXL. It provides Excel features to write data to CSVs. Cell references can be used to add the values at specified locations. Here, I'm going to add a few records of some employees using a foreach
loop.
// Initialize an array of employee names
string[] employeeNames = { "John", "Peter", "Harry", "Kevin", "Brian" };
// Starting row for data entry
int i = 2;
// Setting header titles for the columns
sheet["A1"].Value = "ID";
sheet["B1"].Value = "Name";
sheet["C1"].Value = "Salary";
// Populate each row with employee data
foreach (var employee in employeeNames)
{
// Set values for ID, Name, and Salary
sheet["A" + i].Value = i;
sheet["B" + i].Value = employee;
sheet["C" + i].Value = i * 1000;
i++;
}
// Initialize an array of employee names
string[] employeeNames = { "John", "Peter", "Harry", "Kevin", "Brian" };
// Starting row for data entry
int i = 2;
// Setting header titles for the columns
sheet["A1"].Value = "ID";
sheet["B1"].Value = "Name";
sheet["C1"].Value = "Salary";
// Populate each row with employee data
foreach (var employee in employeeNames)
{
// Set values for ID, Name, and Salary
sheet["A" + i].Value = i;
sheet["B" + i].Value = employee;
sheet["C" + i].Value = i * 1000;
i++;
}
' Initialize an array of employee names
Dim employeeNames() As String = { "John", "Peter", "Harry", "Kevin", "Brian" }
' Starting row for data entry
Dim i As Integer = 2
' Setting header titles for the columns
sheet("A1").Value = "ID"
sheet("B1").Value = "Name"
sheet("C1").Value = "Salary"
' Populate each row with employee data
For Each employee In employeeNames
' Set values for ID, Name, and Salary
sheet("A" & i).Value = i
sheet("B" & i).Value = employee
sheet("C" & i).Value = i * 1000
i += 1
Next employee
In the above code example, an array of employeeNames
is created, and the first row is set with headers: ID, Name, Salary. A variable i
is also initialized with a value 2, which will enter the records from the 2nd row below the headers. The foreach
loop processes each employee from the list and adds them to the current row with ID and salary values. Before the loop completes, i
is incremented to move to the next row for the next record.
Save the Data to a CSV file
The last step is to save the CSV file. IronXL provides the method SaveAsCsv
to save the workbook as a CSV file. The first parameter of this method is the CSV file name and the second is the delimiter.
// Save the modified workbook as a CSV file with a specified delimiter
workBook.SaveAsCsv("sample.csv", ",");
// Save the modified workbook as a CSV file with a specified delimiter
workBook.SaveAsCsv("sample.csv", ",");
' Save the modified workbook as a CSV file with a specified delimiter
workBook.SaveAsCsv("sample.csv", ",")
The complete code is as follows:
using System;
using IronXL;
class Program
{
static void Main()
{
// Create a new workbook and worksheet
WorkBook workBook = WorkBook.Create();
WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");
// Initialize an array of employee names
string[] employeeNames = { "John", "Peter", "Harry", "Kevin", "Brian" };
// Starting row for data entry
int i = 2;
// Setting header titles for the columns
sheet["A1"].Value = "ID";
sheet["B1"].Value = "Name";
sheet["C1"].Value = "Salary";
// Populate each row with employee data
foreach (var employee in employeeNames)
{
// Set values for ID, Name, and Salary
sheet["A" + i].Value = i;
sheet["B" + i].Value = employee;
sheet["C" + i].Value = i * 1000;
i++;
}
// Save the modified workbook as a CSV file with a specified delimiter
workBook.SaveAsCsv("sample.csv", ",");
}
}
using System;
using IronXL;
class Program
{
static void Main()
{
// Create a new workbook and worksheet
WorkBook workBook = WorkBook.Create();
WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");
// Initialize an array of employee names
string[] employeeNames = { "John", "Peter", "Harry", "Kevin", "Brian" };
// Starting row for data entry
int i = 2;
// Setting header titles for the columns
sheet["A1"].Value = "ID";
sheet["B1"].Value = "Name";
sheet["C1"].Value = "Salary";
// Populate each row with employee data
foreach (var employee in employeeNames)
{
// Set values for ID, Name, and Salary
sheet["A" + i].Value = i;
sheet["B" + i].Value = employee;
sheet["C" + i].Value = i * 1000;
i++;
}
// Save the modified workbook as a CSV file with a specified delimiter
workBook.SaveAsCsv("sample.csv", ",");
}
}
Imports System
Imports IronXL
Friend Class Program
Shared Sub Main()
' Create a new workbook and worksheet
Dim workBook As WorkBook = WorkBook.Create()
Dim sheet As WorkSheet = workBook.CreateWorkSheet("Sheet1")
' Initialize an array of employee names
Dim employeeNames() As String = { "John", "Peter", "Harry", "Kevin", "Brian" }
' Starting row for data entry
Dim i As Integer = 2
' Setting header titles for the columns
sheet("A1").Value = "ID"
sheet("B1").Value = "Name"
sheet("C1").Value = "Salary"
' Populate each row with employee data
For Each employee In employeeNames
' Set values for ID, Name, and Salary
sheet("A" & i).Value = i
sheet("B" & i).Value = employee
sheet("C" & i).Value = i * 1000
i += 1
Next employee
' Save the modified workbook as a CSV file with a specified delimiter
workBook.SaveAsCsv("sample.csv", ",")
End Sub
End Class
Output
The output CSV file
Summary
This article presents a simple approach to writing a CSV file using IronXL in C#. IronXL also provides the facility to work with existing CSV files without any hassle. It also allows you to write CSV files, create new Excel files, and write data to them with simple syntax. IronXL can also be used to read and write Excel files without Microsoft Office installed. For conversion between different spreadsheet formats, you can see this code example page.
IronXL is free for development and can be licensed for commercial use. You can also try the IronXL free trial for commercial use.
Frequently Asked Questions
How can I write data to a CSV file in C#?
You can use IronXL's `SaveAsCsv` method to export data to a CSV file in C#. First, create a workbook and worksheet, write data into the cells, and then use `workBook.SaveAsCsv("filename.csv", ",");` to save the data as a CSV file.
What are the steps to create a console application for writing CSV files in C#?
To create a console application for writing CSV files, set up a new project in Visual Studio, select the appropriate .NET version, and install IronXL via the NuGet Package Manager. Then, use IronXL to create a workbook, add data to a worksheet, and save it as a CSV.
Can I write data to a CSV file without using Microsoft Excel?
Yes, you can write data to a CSV file without Microsoft Excel by using IronXL. It allows manipulation of Excel and CSV files programmatically without requiring Excel to be installed.
How do I install IronXL in a Visual Studio project?
You can install IronXL by opening the NuGet Package Manager in Visual Studio, searching for 'IronXL', and clicking 'Install' to add it to your project. This will enable you to use IronXL's functionalities for handling Excel and CSV files.
What file formats does IronXL support for export?
IronXL supports exporting data to several formats, including CSV, JSON, HTML, Binary, Byte Array, DataSet, and DataTable, making it versatile for different data handling needs.
Is IronXL compatible with different .NET versions?
Yes, IronXL is compatible with multiple .NET versions, including .NET Core 2 and 3, as well as .NET 5, 6, and 7, allowing developers flexibility across different development environments.
Can I use IronXL for commercial projects?
Yes, IronXL can be licensed for commercial purposes. It also offers a free trial for development use, allowing developers to test its features before committing to a commercial license.
How do I create a new workbook and worksheet in C# using IronXL?
You can create a new workbook and worksheet by using `WorkBook.Create()` to initialize a workbook object and then adding a new worksheet to it. This allows you to start writing data into the worksheet.
Does IronXL require any Office Interop dependencies?
No, IronXL is a standalone library that does not require any Office Interop dependencies, making it easy to use and deploy in applications across different platforms.