ASP.NET 2.0,C#----利用GridView控件导出其他文件(导出Excel,导出Word文件)
// 注意,在Visual Studio2005平台下,如果使用GridView导出文件,
//就必须重载VerifyRenderingInServerForm方法 public override void VerifyRenderingInServerForm(Control control) {
}
/// <summary> /// 导出到文件的方法, /// </summary> /// <param name="Model">Model=1:导出为Execl,Model=2:导出为Word</param> private void toFiles(int Model) { string strFileName = DateTime.Now.ToString("yyyyMMdd-hhmmss"); System.Web.HttpContext HC = System.Web.HttpContext.Current; HC.Response.Clear(); HC.Response.Buffer = true; HC.Response.ContentEncoding = System.Text.Encoding.UTF8;//设置输出流为简体中文
if (Model == 1) { //---导出为Excel文件 HC.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(strFileName, System.Text.Encoding.UTF8) + ".xls"); HC.Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 } else { //--- 导出为Word文件 HC.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(strFileName, System.Text.Encoding.UTF8) + ".doc"); HC.Response.ContentType = "application/ms-word";//设置输出文件类型为Word文件。 }
System.IO.StringWriter sw = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw); this.GridView1.RenderControl(htw);
HC.Response.Write(sw.ToString()); HC.Response.End();
} //-导出为Excel文件 protected void ToExecl_Click(object sender, EventArgs e) { toFiles(1); } //-导出为Word文件 protected void Button1_Click(object sender, EventArgs e) { toFiles(2); } |