Blog

Exporting data to CSV File

Posted by Parul Agrawal Blogs | ASP.NET Programming Nov 29, 2011
Learn here how to export data to CSV File.

Introduction

In this example we will export Grid view data populated by Database to CSV File.

This is the html source of the page

<%@ Page Language="C#" AutoEventWireup="true" EnableEventValidation="false"  CodeFile="Register.aspx.cs" Inherits="Register" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<
html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<
body>
    <form id="form1" runat="server">
    <div>
    <asp:GridView ID="grdDetail" Width="400px" runat="server"
        AutoGenerateColumns="False" AllowPaging="true" PageSize="5" 
        BackColor="White" BorderColor="White" BorderStyle="Ridge"
        BorderWidth="2px" CellPadding="3" CellSpacing="1" DataKeyNames="Id"
         GridLines="None" AllowSorting="true" >
        <RowStyle BackColor="#DEDFDE" ForeColor="Black" />
        <Columns>
         
            <asp:BoundField DataField="Name" HeaderText="Name"  />
            <asp:BoundField DataField="EmpId" HeaderText="EmpId" />
            <asp:BoundField DataField="ContactNo" HeaderText="ContactNo" />
            <asp:BoundField DataField="EmailId" HeaderText="EmailId" />
            <asp:BoundField DataField="Address" HeaderText="Address" />
        </Columns>
        <FooterStyle BackColor="#C6C3C6" ForeColor="Black" />
        <PagerStyle BackColor="#C6C3C6" ForeColor="Black"      HorizontalAlign="Right" />
        <SelectedRowStyle BackColor="#9471DE" Font-Bold="True"   ForeColor="White" />
        <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#E7E7FF" />
    </asp:GridView>
        <asp:Button ID="Export" runat="server" Text="Export To CSV" onclick="Export_Click" />
    </div>
    </form>
</body>
</
html>

The complete code of Register.aspx.cs Page in Code Behind:

using System;
using System.Web;
using System.Collections.Generic;
using System.Linq;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.Adapters;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Data;
using System.Text;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.html.simpleparser;

public partial class Register : System.Web.UI.Page
{
    DataTable dtCsv = new DataTable();
    BAL objBAL = new BAL();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            fillgrid();
        }  
    }
    public void fillgrid()
    {
        DataSet ds = new DataSet();
        ds = objBAL.Fill_Grid();//Function defined in BAL Class
        dtCsv = ds.Tables[0];       
        grdDetail.DataSource = ds.Tables[0]; 
        grdDetail.DataBind();
       
    }
 
    protected void btnExport_Click(object sender, EventArgs e)
    {
        fillgrid();
        CreateCSVFile(dtCsv, "c:\\" + "Register" + ".csv" + ""); 
    }
   
    public void CreateCSVFile(DataTable dt, string strFilePath)
    {
        StreamWriter sw = new StreamWriter(strFilePath, false);
        int iColCount = dt.Columns.Count;
        for (int i = 0; i < iColCount; i++)
        {
            sw.Write(dt.Columns[i]);
            if (i < iColCount - 1)
            {
                sw.Write(",");
            }
        }
       sw.Write(sw.NewLine);
       // Now write all the rows.
       foreach (DataRow dr in dt.Rows)
       {
           for (int i = 0; i < iColCount; i++)
           {
                if (!Convert.IsDBNull(dr[i]))
                {
                     sw.Write(dr[i].ToString());
                 }
                 if (i < iColCount - 1)
                {
                     sw.Write(",");
                 }
            }
            sw.Write(sw.NewLine);
        }
        sw.Close();
    }
 
    public override void VerifyRenderingInServerForm(Control control)
    {
    }
}

App_Code BAL.cs

using System;
using System.Web;
using System.Collections.Generic;
using System.Linq;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.Adapters;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Data;
public class BAL
{
     public BAL()
     {
          //
          // TODO: Add constructor logic here
          //
     }
 
     #region "variable"
               
     #region "Properties"
     #region "Functions"
     public DataSet Fill_Grid()
     {
         SqlConnection conn = new SqlConnection(connectionString);
         SqlCommand cmd = new SqlCommand("SELECT * from Register", conn);
         cmd.CommandType = CommandType.Text;
         SqlDataAdapter adap = new SqlDataAdapter(cmd);
         DataSet ds = new DataSet();
         adap.Fill(ds);
         return ds;
     }
     #endregion
}

COMMENT USING
PREMIUM SPONSORS
MCN is your source for developing solutions involving websites, mobile apps, cloud-computing, databases, BI, back-end services and processes and client-server applications.
SPONSORED BY
  • MCN is your source for developing solutions involving websites, mobile apps, cloud-computing, databases, BI, back-end services and processes and client-server applications.