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();
}
}
}