Here i will explain How to Export Gridview Data To Excel. In the Previous post Explained How to Export Gridview Data To PDF  and now While Exporting I will explain the problems how to solve them. Here i am binding Gridview In the Page_Load event 
Out Put :
Aspx Page :
 
   
      
   
Code Behind
Error 1 :
For The type of above Error Click Here
DownLoad From Here
Out Put :
Aspx Page :
<%@ Page
Title="Home
Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" EnableEventValidation="false"
    CodeBehind="Default.aspx.cs"
Inherits="ExpGvDataToExcel._Default"
%>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <center>
       <asp:Button ID="btnExpToExcel"
runat="server"
onclick="btnExpToExcel_Click"
           Text="Export To
Excel" />
       <br />
       <br />
       <asp:GridView ID="ExpGvToExcelControl"
runat="server"
CellPadding="4"
ForeColor="#333333"
           GridLines="None"
OnRowCreated="ExpGvToExcelControl_RowCreated"
            OnPageIndexChanging="ExpGvToExcelControl_PageIndexChanging"
AllowPaging="True">
           <AlternatingRowStyle
BackColor="White"
/>
           <FooterStyle BackColor="#990000"
Font-Bold="True"
ForeColor="White"
/>
           <HeaderStyle BackColor="#990000"
Font-Bold="True"
ForeColor="White"
/>
           <PagerStyle BackColor="#FFCC66"
ForeColor="#333333"
HorizontalAlign="Center"
/>
           <RowStyle BackColor="#FFFBD6"
ForeColor="#333333"
/>
           <SelectedRowStyle
BackColor="#FFCC66"
Font-Bold="True"
ForeColor="Navy"
/>
           <SortedAscendingCellStyle
BackColor="#FDF5AC"
/>
           <SortedAscendingHeaderStyle
BackColor="#4D0000"
/>
           <SortedDescendingCellStyle
BackColor="#FCF6C0"
/>
           <SortedDescendingHeaderStyle
BackColor="#820000"
/>
       </asp:GridView>
   </center>
</asp:Content>
Code Behind
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
using System.IO;
using System.Drawing;
namespace ExpGvDataToExcel
{
    public partial class _Default :
System.Web.UI.Page
    {
        private string
constring = 
       ConfigurationManager.ConnectionStrings["myconstring"].ConnectionString;
        SqlDataAdapter da;
        protected void
Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
               
BindGrid();
            }
        }
        protected void
btnExpToExcel_Click(object sender, EventArgs e)
        {
            try
            {
               
Response.ClearContent();
                Response.Buffer = true;
               
Response.AddHeader("content-disposition",
                     string.Format("attachment;
filename={0}", "EmpInfo.xls"));
               
Response.ContentType = "application/ms-excel";
               
StringWriter sw = new StringWriter();
               
HtmlTextWriter htw = new HtmlTextWriter(sw);
               
ExpGvToExcelControl.AllowPaging = false;
               
BindGrid();
               
//Change the Header Row back to white color
               
ExpGvToExcelControl.HeaderRow.Style.Add("background-color",
"#FFFFFF");
               
//Applying stlye to gridview header cells
               
for (int
i = 0; i < ExpGvToExcelControl.HeaderRow.Cells.Count; i++)
               
{
                   
ExpGvToExcelControl.HeaderRow.Cells[i].Style.Add("background-color", "#507CD1");
               
}
               
int j = 1;
               
//This loop is used to apply stlye to cells
based on particular row
               
foreach (GridViewRow
gvrow in ExpGvToExcelControl.Rows)
               
{
                   
gvrow.BackColor = Color.White;
                   
if (j <=
ExpGvToExcelControl.Rows.Count)
                   
{
                        if (j % 2 != 0)
                 
      {
                            for (int k = 0; k
< gvrow.Cells.Count; k++)
                            {
                               
gvrow.Cells[k].Style.Add("background-color",
"#EFF3FB");
                            }
                        }
                    }
                   
j++;
               
}
               
ExpGvToExcelControl.RenderControl(htw);
               
Response.Write(sw.ToString());
               
Response.End();
            }
            catch (Exception
ex)
            {
               
string ErrMsg = ex.Message;
            }
        }
        public override void VerifyRenderingInServerForm(Control control)
        {
            // verifies the control is rendered here
        }
        private void
BindGrid()
        {
            try
            {
               
DataSet ds = new
DataSet();
               
da = new SqlDataAdapter("select * from EMPTable", constring);
               
da.Fill(ds, "GetEmpInfo");
                ExpGvToExcelControl.DataSource =
ds.Tables[0];
               
ExpGvToExcelControl.DataBind();
            }
            catch (Exception
ex)
            {
               
string ErrMsg = ex.Message;
            }
        }
        protected void
ExpGvToExcelControl_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.HorizontalAlign = HorizontalAlign.Center;
               
HeaderCell.Text = "Half Part 1";
               
HeaderCell.ColumnSpan = 4;
               
HeaderGridRow.Cells.Add(HeaderCell);
               
HeaderCell = new TableCell();
               
HeaderCell.HorizontalAlign = HorizontalAlign.Center;
               
HeaderCell.Text = "Half Part 2";
               
HeaderCell.ColumnSpan = 4;
               
HeaderGridRow.Cells.Add(HeaderCell);
               
ExpGvToExcelControl.Controls[0].Controls.AddAt(0, HeaderGridRow);
            }
        }
        protected void
ExpGvToExcelControl_PageIndexChanging(object
sender, 
                           System.Web.UI.WebControls.GridViewPageEventArgs e)
        {
           
ExpGvToExcelControl.PageIndex = e.NewPageIndex;
           
BindGrid();
        }
    }
}
Error 1 :
For The type of above Error Click Here
DownLoad From Here



nice code..
ReplyDelete