Hi bkc,
Please refer below sample.
HTML
<asp:GridView runat="server" ID="grdShipSummaryReport" OnDataBound="SummaryBound"
AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="CustomerName" HeaderText="CustomerName" />
<asp:BoundField DataField="CustomerCountry" HeaderText="CustomerCountry" />
<asp:BoundField DataField="EmployeeName" HeaderText="EmployeeName" />
<asp:BoundField DataField="EmployeeCountry" HeaderText="EmployeeCountry" />
</Columns>
</asp:GridView>
<asp:Button Text="ExportToExcel" runat="server" OnClick="ExportToExcel" />
Namespaces
C#
using System.IO;
using System.Data;
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[4] { new DataColumn("CustomerName"), new DataColumn("CustomerCountry"), new DataColumn("EmployeeName"), new DataColumn("EmployeeCountry") });
dt.Rows.Add("John Hammond", "United States", "Albert Dunner", "Bolivia");
dt.Rows.Add("Mudassar Khan", "India", "Jason Sprint", "Canada");
dt.Rows.Add("Suzanne Mathews", "France", "Alfred Lobo", "Philippines");
dt.Rows.Add("Robert Schidner", "Russia", "Shaikh Ayyaz", "UAE");
grdShipSummaryReport.DataSource = dt;
grdShipSummaryReport.DataBind();
}
public void SummaryBound(object sender, EventArgs e)
{
GridViewRow row = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal);
TableHeaderCell tec = new TableHeaderCell();
tec = new TableHeaderCell();
tec.ColumnSpan = 2;
tec.Text = "Customer";
row.Controls.Add(tec);
tec = new TableHeaderCell();
tec.ColumnSpan = 2;
tec.Text = "Employee";
row.Controls.Add(tec);
grdShipSummaryReport.HeaderRow.Parent.Controls.AddAt(0, row);
}
protected void ExportToExcel(object sender, EventArgs e)
{
this.BindGrid();
string Filename = "LPDPReport" + DateTime.Now + ".xls";
Response.ClearContent();
Response.Clear();
Response.Buffer = true;
Response.ClearHeaders();
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment;Filename=" + Filename);
StringWriter str = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(str);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
grdShipSummaryReport.AllowPaging = false;
grdShipSummaryReport.GridLines = GridLines.Both;
grdShipSummaryReport.HeaderStyle.Font.Bold = true;
grdShipSummaryReport.RenderControl(htw);
Response.Write(str.ToString());
Response.Flush();
Response.Close();
Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{
}
Screenshot
