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
}