2014-01-14 76 views
0

我試圖導出Gridview數據到Excel。我搜索了很多,並得到了代碼導出爲Excel。但excel沒有顯示。當使用到Response.End()一個threadexception來,所以我使用HttpContext.Current.ApplicationInstance.CompleteRequest(),而不是到Response.End()Excel表格試圖導出gridview數據到excel在asp.net

請幫我找出一個解決方案。

Response.Clear(); 

Response.AddHeader("content-disposition", "attachment; filename=FileName.xls"); 
Response.ContentType = "application/vnd.xls"; 
System.IO.StringWriter stringWrite = new System.IO.StringWriter(); 

System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); 

gridSalary.RenderControl(htmlWrite); 
Response.Write(stringWrite.ToString()); 
// Response.End(); 

HttpContext.Current.ApplicationInstance.CompleteRequest(); 

回答

0

的下面是一個工作示例

protected void Page_Load(object sender, EventArgs e) 
    { 
    } 

    protected void Button2_Click(object sender, EventArgs e) 
    { 
     Response.Clear(); 
     Response.AddHeader("content-disposition", "attachment;filename=file-name.xls"); 
     Response.ContentType = "application/vnd.xlsx"; 
     System.IO.StringWriter stringWrite = new System.IO.StringWriter(); 
     System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); 
     GridView1.RenderControl(htmlWrite); 
     Response.Write(stringWrite.ToString()); 
     Response.End(); 
    } 

    public override void VerifyRenderingInServerForm(Control control) 
    { 
    } 

:存在被覆蓋的函數VerifyRenderingInServerForm。我想你錯過了它。