Hello Dharmender, Please see my code..
Using asp:boundfiled it is working fine.....But when i use template field and eval excel is blank....data is not download in excel file.......only blank excel is download ..
    <form id="form1" runat="server">
        <div>
            <asp:GridView ID="gv1" AutoGenerateColumns="false" runat="server">
                <Columns>
                    <asp:TemplateField HeaderText="Name">
                        <ItemTemplate>
                            <%#Eval("Name") %>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Email">
                        <ItemTemplate>
                            <%#Eval("Email") %>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Company">
                        <ItemTemplate>
                            <%#Eval("Company") %>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
            <asp:Button ID="btnexport" runat="server" Text="Export" OnClick="btnexport_Click" />
        </div>
    </form>
 
using ClosedXML.Excel;
using System.IO;
public partial class GridExp : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            BindGrid();
        }
    }
    private void BindGrid()
    {
        DataSet ds = clsSQLExecute.Exec_Dataset_string("select TOP 5 * from UserDetails");
        if (ds != null && ds.Tables[0].Rows.Count > 0)
        {
            gv1.DataSource = ds;
            gv1.DataBind();
        }
        else
        {
            string Msg = string.Empty;
            Msg = "No record Found !";
        }
    }
    protected void btnexport_Click(object sender, EventArgs e)
    {
        DataTable dt = new DataTable("GridView_Data");
        foreach (TableCell cell in gv1.HeaderRow.Cells)
        {
            dt.Columns.Add(cell.Text);
        }
        foreach (GridViewRow row in gv1.Rows)
        {
            dt.Rows.Add();
            for (int i = 0; i < row.Cells.Count; i++)
            {
                dt.Rows[dt.Rows.Count - 1][i] = row.Cells[i].Text;
            }
        }
        using (XLWorkbook wb = new XLWorkbook())
        {
            wb.Worksheets.Add(dt);
            Response.Clear();
            Response.Buffer = true;
            Response.Charset = "";
            Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
            Response.AddHeader("content-disposition", "attachment;filename=GridView.xlsx");
            using (MemoryStream MyMemoryStream = new MemoryStream())
            {
                wb.SaveAs(MyMemoryStream);
                MyMemoryStream.WriteTo(Response.OutputStream);
                Response.Flush();
                Response.End();
            }
        }
    }