Hi loraksa.t,
Please refer below sample.
HTML
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" AllowPaging="true"
PageSize="10" OnRowCreated="GridView1_RowCreated"
onpageindexchanging="OnPageIndexChanging">
<Columns>
<asp:BoundField DataField="Department Id" HeaderText="Department Id" ItemStyle-Width="150px" />
<asp:BoundField DataField="Department Name" HeaderText="Department Name" ItemStyle-Width="100px" />
<asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-Width="100px" />
<asp:BoundField DataField="Location" HeaderText="Location" ItemStyle-Width="100px" />
</Columns>
</asp:GridView>
<br />
<asp:Button ID="btnExport" runat="server" Text="Export To Excel" OnClick="ExportExcel" />
</div>
Namespaces
C#
using System.Data;
using System.IO;
Code
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
this.BindGrid();
}
}
private void BindGrid()
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[] { new DataColumn("Department Id", typeof(int)), new DataColumn("Department Name", typeof(string)), new DataColumn("Name", typeof(string)), new DataColumn("Location", typeof(string)) });
dt.Rows.Add(1, "IT", "A", "Delhi");
dt.Rows.Add(1, "IT", "B", "Noida");
dt.Rows.Add(2, "HR", "C", "Gurgaonv");
dt.Rows.Add(2, "HR", "D", "Noid");
dt.Rows.Add(3, "Admn", "E", "Noida");
dt.Rows.Add(3, "Admin", "F", "Noid");
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
GridView HeaderGrid = (GridView)sender;
GridViewRow HeaderGridRow = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Insert);
TableCell HeaderCell = new TableCell();
HeaderCell.Text = "Department";
HeaderCell.ColumnSpan = 2;
HeaderGridRow.Cells.Add(HeaderCell);
HeaderCell = new TableCell();
HeaderCell.Text = "Employee";
HeaderCell.ColumnSpan = 2;
HeaderGridRow.Cells.Add(HeaderCell);
HeaderGridRow.Attributes.Add("style", "text-align:center;font-weight:bold");
this.GridView1.Controls[0].Controls.AddAt(0, HeaderGridRow);
}
}
protected void OnPageIndexChanging(object sender, GridViewPageEventArgs e)
{
this.GridView1.PageIndex = e.NewPageIndex;
this.BindGrid();
}
protected void ExportExcel(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
using (StringWriter sw = new StringWriter())
{
HtmlTextWriter hw = new HtmlTextWriter(sw);
//To Export all pages
this.GridView1.AllowPaging = false;
this.BindGrid();
this.GridView1.RenderControl(hw);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
}
}
public override void VerifyRenderingInServerForm(Control control)
{
/* Verifies that the control is rendered */
}
Screenshot
