C# Gridview到Excel不在Excel中生成任何结果

C# Gridview到Excel不在Excel中生成任何结果,c#,excel,gridview,C#,Excel,Gridview,我希望有人能让我走上正轨。我需要将我的Gridview下载到Excel: Gridview显示在my.ascx页面上,没有问题。。。我按下按钮,执行以下代码,我得到保存或打开的提示,但随后我得到“file.xls”格式不正确或已损坏,我按下打开。。。我的Excel中没有显示任何内容。我记得以前不得不这样做,我遇到了麻烦。。。我错过了什么: protected void dwnLoad(object sender, EventArgs e) { Respon

我希望有人能让我走上正轨。我需要将我的Gridview下载到Excel:

Gridview显示在my.ascx页面上,没有问题。。。我按下按钮,执行以下代码,我得到保存或打开的提示,但随后我得到“file.xls”格式不正确或已损坏,我按下打开。。。我的Excel中没有显示任何内容。我记得以前不得不这样做,我遇到了麻烦。。。我错过了什么:

protected void dwnLoad(object sender, EventArgs e)
        {
            Response.Clear();
            Response.AddHeader("content-disposition", "attachment; filename=kbNotification.xls");
            Response.Charset = "";
            //Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.ContentType = "application/vnd.xls";
            System.IO.StringWriter stringWrite = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWrite);
            GridView1.RenderControl(htmlWriter);
            Response.End();
        }

由于我的Gridview位于.ascx页面中。。。default.aspx页面必须包含两个部分:在代码隐藏中:

public override void VerifyRenderingInServerForm(Control control)
        {
            return;
        }

在顶部的default.aspx中,在我已经解决的一些格式问题旁边,看看我的问题,有一种方法可以很好地将datagrid导出到excel。需要记住的一点是,输出不是真正的excel电子表格。它本质上是一个可格式化的HTML/文本文件,需要在导出后保存为excel电子表格。好吧,它确实可以工作,只是我不断收到消息“您试图打开的文件的格式与文件扩展名指定的格式不同。”
protected void dwnLoad(object sender, EventArgs e)
        {
            Response.Clear();
            Response.AddHeader("content-disposition", "attachment; filename=kbNotification.xls");
            Response.Charset = "";
            //Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.ContentType = "application/vnd.xls";
            System.IO.StringWriter stringWrite = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWrite);
            GridView1.RenderControl(htmlWriter);
            Response.Write(stringWrite.ToString());
            Response.End();
        }