我有一个页面,Gridview
当单击按钮时,我应该将数据从导出Gridview
到.xls
文件。我已经尝试了很多方法。这是我的代码:
protected void export_Click(object sender, EventArgs e)
{
Response.ClearContent();
//Response.Buffer = true;
//Response.ClearHeaders();
//Response.CacheControl = "no-cache";
//Response.AddHeader("Pragma", "no-cache");
Response.AddHeader("Content-Disposion","attachment; filename=Clients.xls");
Response.ContentType = "application/excel";
StringWriter swriter = new StringWriter();
HtmlTextWriter hwriter = new HtmlTextWriter(swriter);
grid.RenderControl(hwriter);
Response.Write(swriter.ToString());
Response.End();
}
问题是当我单击按钮时,它正在导出aspx
文件。我已经尝试了Stackoverflow和其他来源的所有答案。但是,我无法纠正它。我需要确切的原因,为什么它是如此和一些可能的解决方案。(我试过Content-type
的"application/excel"
,"application/vn"
,"application/vn-excel"
也是如此。)
你可以按照下面的代码,它工作正常..
protected void cmdExport_Click(object sender, EventArgs e) { Response.Clear(); Response.AddHeader("content-disposition", "attachment; filename=SupplierList.xls"); Response.ContentType = "application/vnd.xls"; System.IO.StringWriter WriteItem = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter htmlText = new HtmlTextWriter(WriteItem); GridView1.AllowPaging = false; DataTable dtSupplier = (DataTable)ViewState["dtSupplier"]; GridView1.DataSource = dtSupplier; GridView1.DataBind(); GridView1.RenderControl(htmlText); Response.Write(WriteItem.ToString()); Response.End(); }
希望这会帮助你。谢谢
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句