2015-01-09 40 views
0

我有一段代碼從網格視圖提取數據到excel文件。但是,而不是提取網格視圖數據被複制整個數據存在於HTML視圖到我的excel如下:Gridview到Excel問題

enter image description here

我怎樣才能得到只有我網格視圖數據導入Excel? 我的excel世代代碼如下。我不使用Response.End(),因爲它拋出ThreadAbortException。

protected void btnExcelGenerator_Click(object sender, EventArgs e) 
{ 

      Response.Clear(); 
      Response.AddHeader("content-disposition", "attachment;filename=FileName.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 htmlWrite = new HtmlTextWriter(stringWrite); 

      GridViewRefurb.RenderControl(htmlWrite); 
      Response.Write(stringWrite.ToString()); 
      Response.Flush(); 
      HttpContext.Current.ApplicationInstance.CompleteRequest(); 

} 

幫助表示讚賞,謝謝提前

+1

我不會導出HTML,而是一個真正的Excel文件。使用'EPPlus'非常簡單,看一看:http://stackoverflow.com/a/12222648/284240 –

+0

@Tim謝謝,但在你的例子中,它不是從gridview加載,而是從數據表加載。我希望在我的網格視圖內顯示的數據反映在Excel中。因爲我從來沒有聽說過EPPlus,所以感到困惑。我可以使用幫助 –

+0

但是'GridView'有一個'Dat5aSource'。用於'LoadFromDataTable'或'LoadFromCollection'。 –

回答

0

做一些改變

1)ASPX頁面:面板

 <asp:panel id = "panel_export" runat = "server" > 
     <asp:Gridview id = "Gridview" runat = "server"> 
     </Gridview> 
    </asp:Panel> 

2)在Excel導出內的GridView呈現面板代替的GridView

 panel_export.RenderControl(htmlWrite);