Showing posts with label C#.Net. Show all posts
Showing posts with label C#.Net. Show all posts

Tuesday, 29 April 2014

How to Export Data from Gridview to Excel in Asp.net using C#.Net

To export gridview data to excel we need to write the code like as shown below




<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Export Gridview Data to Excel in Asp.net</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="gvDetails" AutoGenerateColumns="false" CellPadding="5" runat="server">
<Columns>
<asp:BoundField HeaderText="UserId" DataField="UserId" />
<asp:BoundField HeaderText="UserName" DataField="UserName" />
<asp:BoundField HeaderText="Education" DataField="Education" />
<asp:BoundField HeaderText="Location" DataField="Location" />
</Columns>
<HeaderStyle BackColor="#df5015" Font-Bold="true" ForeColor="White" />
</asp:GridView>
</div>
<asp:Button ID="btnExport" runat="server" Text="Export to Excel"
onclick="btnExport_Click" />
</form>
</body>
</html>



Now in code behind add following namespaces

C# Code


using System;
using System.Data;
using System.IO;
using System.Web.UI;



After that add following code in code behind like as shown below


protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGridview();
}
}
protected void BindGridview()
{
DataTable dt = new DataTable();
dt.Columns.Add("UserId"typeof(Int32));
dt.Columns.Add("UserName"typeof(string));
dt.Columns.Add("Education"typeof(string));
dt.Columns.Add("Location"typeof(string));
dt.Rows.Add(1, "SureshDasari""B.Tech""Chennai");
dt.Rows.Add(2, "MadhavSai""MBA""Nagpur");
dt.Rows.Add(3, "MaheshDasari""B.Tech""Nuzividu");
dt.Rows.Add(4, "Rohini""MSC""Chennai");
dt.Rows.Add(5, "Mahendra""CA""Guntur");
dt.Rows.Add(6, "Honey""B.Tech""Nagpur");
gvDetails.DataSource = dt;
gvDetails.DataBind();
}
public override void VerifyRenderingInServerForm(Control control)
{
/* Verifies that the control is rendered */
}
protected void btnExport_Click(object sender, EventArgs e)
{
Response.ClearContent();
Response.Buffer = true;
Response.AddHeader("content-disposition"string.Format("attachment; filename={0}""Customers.xls"));
Response.ContentType = "application/ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
gvDetails.AllowPaging = false;
BindGridview();
//Change the Header Row back to white color
gvDetails.HeaderRow.Style.Add("background-color""#FFFFFF");
//Applying stlye to gridview header cells
for (int i = 0; i < gvDetails.HeaderRow.Cells.Count; i++)
{
gvDetails.HeaderRow.Cells[i].Style.Add("background-color""#df5015");
}
gvDetails.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();
}



Whenever we run application we will see the screen like as shown below