http://www.dotblogs.com.tw/chou/archive/2009/04/03/7831.aspx
解決此問題的方式 這段程式碼解決轉碼問題即可
問題1. 產生 型別 'GridView' 的控制項 'GridView1' 必須置於有 runat=server 的表單標記之中 的問題
問題2. 當 GridView 中有中文字時,使用上述的程式碼所匯出的Excel會有中文亂碼,如下圖所示
using System;
using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class _Default : System.Web.UI.Page {
protected void Button2_Click(object sender, EventArgs e)
{
Response.ClearContent();
Response.Write("<meta http-equiv=Content-Type content=text/html;charset=utf-8>");
string excelFileName = "測試Excel檔案.xls";
Response.AddHeader("content-disposition", "attachment;filename=" + Server.UrlEncode(excelFileName));
Response.ContentType = "application/excel";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
GridView1.RenderControl(htmlWrite);
Response.Write("<style type=text/css>");
Response.Write("td{mso-number-format:\\@;}") ;//'將所有td欄位格式改 為"文字"
Response.Write("</style>");
Response.Write(stringWrite.ToString());
Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{
// '處理'GridView' 的控制項 'GridView' 必須置於有 runat=server 的表單標記之中
}
}