How to Export DataTable to CSV in C#
By FoxLearn 7/16/2024 9:36:47 AM 4.9K
How to Export DataTable to CSV in C#
Here's a step-by-step guide on how to do this:
Create a Windows Forms Application in Visual Studio. then design a simple UI allows you to export data from DataTable to CSV file as shown below.
Creating a WriteDataTable method allows you to write data from DataTable to text or csv file in c#.
public void WriteDataTable(DataTable dataTable, TextWriter writer, bool header) { if (header) { // Create the CSV file and write the headers IEnumerable<string> headerValues = dataTable.Columns .OfType<DataColumn>() .Select(column => QuoteValue(column.ColumnName)); writer.WriteLine(string.Join(",", headerValues)); } IEnumerable<string> items = null; foreach (DataRow row in dataTable.Rows) { items = row.ItemArray.Select(o => QuoteValue(o?.ToString() ?? string.Empty)); writer.WriteLine(string.Join(",", items)); } writer.Flush(); } private string QuoteValue(string value) { return string.Concat("\"", value.Replace("\"", "\"\""), "\""); }
Data in the csv file is separated by commas. If you want to export header data you need to write column headers first, then data.
Next, Add a bindingsource to the DataGridView allows you to retrieve customer table from the Northwind database.
private void frmExportDataTableToCsv_Load(object sender, EventArgs e) { // TODO: This line of code loads data into the 'appData.Customers' table. You can move, or remove it, as needed. this.customersTableAdapter.Fill(this.appData.Customers); }
Double-click on the Export button to generate an event handler for its click event allows you to export datatable to csv file.
// c# export datatable to csv private void btnExportData_Click(object sender, EventArgs e) { using (SaveFileDialog sfd = new SaveFileDialog() { Filter = "CSV files|*.csv" }) { if (sfd.ShowDialog() == DialogResult.OK) { try { using (StreamWriter writer = new StreamWriter(sfd.FileName)) { WriteDataTable(this.appData.Customers.CopyToDataTable(), writer, true); } MessageBox.Show("You have successfully exported the file.", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }
Build and run your application. When you click the button, it will export the data from the DataTable
to a CSV file. You can easily open csv file with Microsoft Excel.
Through this c# example, you can easily export data from DataGridView to csv file in c# windows forms application.