drupal stats

Export DataTable to CSV/Excel

June 11th, 2011 Web Forms 5 Comments


ExportDataTabletoCSV thumb Export DataTable to CSV/Excel

Step1: Add HttpContext

HttpContext context = HttpContext.Current;

context.Response.Clear();

Step 2: Add CSV Header

foreach (DataColumn column in dataTable.Columns)

{

    context.Response.Write(column.ColumnName + ",");

}

context.Response.Write(Environment.NewLine);

Step 3: Add cell value

foreach (DataRow row in dataTable.Rows)

{

    for (int i = 0; i < dataTable.Columns.Count; i++)

    {

        context.Response.Write(row[i].ToString() + ",");

    }

    context.Response.Write(Environment.NewLine);

}

Step 4: Save CSV file

context.Response.ContentType = "text/csv";

context.Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName + ".csv");

context.Response.End();

 

Complete Source Code

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.IO;

using System.Data;

 

public partial class _Default : System.Web.UI.Page 

{

    protected void Page_Load(object sender, EventArgs e)

    { }

 

    protected void Button1_Click(object sender, EventArgs e)

    {

        DataSet ds = new DataSet();

        ds.ReadXml(Server.MapPath("Products.xml"));

        ExportToExcel(ds.Tables[0], "DataTable");

    }

 

    protected void ExportToExcel(DataTable dataTable, string fileName)

    {

        HttpContext context = HttpContext.Current;

        context.Response.Clear();

        foreach (DataColumn column in dataTable.Columns)

        {

            context.Response.Write(column.ColumnName + ",");

        }

        context.Response.Write(Environment.NewLine);

 

        foreach (DataRow row in dataTable.Rows)

        {

            for (int i = 0; i < dataTable.Columns.Count; i++)

            {

                context.Response.Write(row[i].ToString() + ",");

            }

            context.Response.Write(Environment.NewLine);

        }

        context.Response.ContentType = "text/csv";

        context.Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName + ".csv");

        context.Response.End();

    }

}

Download Source Code

Tags: datatable to csv, export datatable to excel in c# windows application, export datatable to excel, export datatable to csv, export datatable to excel c#, export datatable to excel in asp net, asp net export datatable to excel, export datatable to csv in asp net, export datatable to excel c# windows application, datatable to excel

Related posts:

  1. Export GridView to CSV
  2. Export GridView to Excel in ASP.NET

5 Comments

  1. Neha says:

    How to make this export process running in different window..so user can navigate to the other pages during download file?

    • Pushkar says:

      Hi Neha,

      Once you click on button to export the CSV/Excel the download process will run in popup window.

  2. Mahesh says:

    Hi, Can you please suggest me how to export the total data from grid view to csv file while paging is allowed.?

    Please suggest me ..

  3. emanuel says:

    is it posible to create a second sheet fill whit a second datatable usin just one button and this same code?