2012-05-07 26 views
0

我有一些默認的功能在C#asp.net web應用程序將導出一個gridview到Excel文件。此代碼在Excel 2007中運行良好,但在2010年不會打開。我需要升級此代碼才能在兩者中工作,或者找到新的解決方案。任何幫助都會很棒。代碼升級 - 導出到Excel 2007和以上

當前代碼:

  gvReport.Style.Add("font-size", "1em"); 
      Response.Clear(); 
      string attachment = "attachment; filename=FileName.xls"; 
      Response.ClearContent(); 
      Response.AddHeader("content-disposition", attachment); 
      Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; 
      StringWriter sw = new StringWriter(); 
      HtmlTextWriter htw = new HtmlTextWriter(sw); 
      gvReport.GridLines = GridLines.Horizontal; 
      gvReport.RenderControl(htw); 
      Response.Write(sw.ToString()); 
      Response.End(); 
+1

你什麼錯誤試圖在Excel 2007+開?我的猜測是你遇到了一個安全問題,而不是一個Excel問題。 –

+0

你不會將它導出爲OpenXML btw。您將其導出爲ex​​cel(顯然不是2010)能夠理解的HTML。你最好的選擇就是安東尼奧建議的EPP。 – banging

回答

2

使用EPPlus和導出數據到Excel中,我假定gvReport IZ GridView控件,所以使用您綁定到該GridView和與EPPlus導出數據。

這是很容易,在這裏你可以找到例子ashx的處理程序,將返回Excel文件從數據表中創建:

https://stackoverflow.com/a/9569827/351383