C# GridView导出到Excel正在导出整个aspx页面
我正在尝试将gridview的内容导出到excel。我有一些代码:C# GridView导出到Excel正在导出整个aspx页面,c#,asp.net,gridview,C#,Asp.net,Gridview,我正在尝试将gridview的内容导出到excel。我有一些代码: public void ExcelDownload(object sender, EventArgs e) { Response.Clear(); Response.Buffer = true; Response.Charset = "UTF-8"; Response.AppendHeader("Content-Disposition", "attachm
public void ExcelDownload(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.Charset = "UTF-8";
Response.AppendHeader("Content-Disposition", "attachment;filename=MailingList.xls");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
Response.ContentType = "application/ms-excel";
this.EnableViewState = false;
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("EN-US", true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
MailingList.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
}
单击链接时运行。除了导出整个网页,而不仅仅是gridview(MailingList)之外,它工作得很好。有人知道如何解决此问题吗?从技术上讲,这不是导出到excel,而是您发送了一个带有错误标题的html,以欺骗浏览器使用excel打开此内容。如果您坚持使用此解决方案,则必须在单独的aspx页面上仅呈现GridView 此解决方案可能存在问题,excel it自身将警告用户内容与扩展名不同,因为您发送的html和响应标题表明这是excel文件。我敢打赌,客户端上的一些反恶意软件或服务器上的类似软件将阻止此响应,因为提供与标题中声明的内容不同的内容是已知的恶意软件行为
更好地使用(xls)或/和(xlsx)并完全控制excel导出。好的,我现在正在尝试ePlus。希望它能起作用!感谢您的帮助。哦,它工作得很好,您可以在这里看到将DataTable导出到xlsx的示例