天天看點

将ASP.NET頁面内的資料導出到Excel 或 Word中

在以下按鈕單擊事件中實作:

private void btnMIME_Click(object sender, System.EventArgs e)

{

dgShow.AllowPaging = false;

 BindData(); 

  Response.ContentType = "application/vnd.ms-excel";

 Response.AddHeader("Content-Disposition", "inline;filename="

   +   HttpUtility.UrlEncode("下載下傳檔案.xls",Encoding.UTF8   )   );  

 //如果輸出為Word,修改為以下代碼

 //Response.ContentType = "application/ms-word"

 //Response.AddHeader("Content-Disposition", "inline;filename=test.doc")

 StringBuilder sb=new StringBuilder();

 System.IO.StringWriter sw = new System.IO.StringWriter(sb);

 System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(sw);

 sb.Append("<html><body>");

 dgShow.RenderControl(hw);

 sb.Append("</body></html>");

 Response.Write(sb.ToString());

 Response.End();

dgShow.AllowPaging = true;

BindData(); 

}

注:1.若DataGrid中有按鈕列,則在導出前應先将其隐藏.

    2.若DataGrid有分頁,而又要列印所有資料的話就應先取消分頁.

2006年7月19日-補充:

若為VS.NET2005中的資料綁定新控件GridView,以上代碼會提示異常錯誤,經網上搜尋,解決方案如下:

1、在導出界面中重載

    public override void VerifyRenderingInServerForm(Control control)

    {

        //base.VerifyRenderingInServerForm(control);

    }

2、在web.config中修改<pages enableEventValidation ="false" ></pages>

<%@ Page Language="C#" EnableEventValidation = "false" AutoEventWireup="true"

 CodeFile="ExportGridView.aspx.cs" Inherits="ExportGridView" %>

繼續閱讀