C# 为什么“导出到excel”功能会导出整个页面?
我试图导出显示在窗口(模式)中的gridview,但它会导出整个页面C# 为什么“导出到excel”功能会导出整个页面?,c#,gridview,export,export-to-excel,xls,C#,Gridview,Export,Export To Excel,Xls,我试图导出显示在窗口(模式)中的gridview,但它会导出整个页面 public void ExportToXLS(GridView gv) { gv.AllowPaging = false; HttpContext.Current.Response.Buffer = true; HttpContext.Current.Response.ClearContent(); HttpContext.Current.Response.ClearHeaders();
public void ExportToXLS(GridView gv)
{
gv.AllowPaging = false;
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=GridView.xls");
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
GridView gvExp = new GridView();
gvExp = gv;
gvExp.RenderControl(htmlWrite);
HttpContext.Current.Response.Write(stringWrite.ToString());
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.Close();
HttpContext.Current.Response.End();
}
问题是我在gridview中有一个链接按钮,它导致页面无法正确呈现 解决方案很简单,我只是删除了链接按钮认为我真的不需要它们的列
public void ExportToXLS(GridView gv)
{
GV.Columns[4].Visible = false;
GV.Columns[5].Visible = false;
gv.AllowPaging = false;
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=GridView.xls");
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
GridView gvExp = new GridView();
gvExp = gv;
gvExp.RenderControl(htmlWrite);
HttpContext.Current.Response.Write(stringWrite.ToString());
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.Close();
HttpContext.Current.Response.End();
}
GV.Columns[].Visible=false代码>刚开始的几行代码就解决了我的整个问题。我已经测试了你的代码,没有任何问题。问题可能出在此处未显示的代码中。