把Web Control导出为Excel或Word

发表于:2007-06-30来源:作者:点击数: 标签:
/// summary /// 将Web控件导出 /// /summary /// param name=source控件实例/param /// param name=type类型:Excel或Word/param public void ExpertControl(System.Web.UI.Control source, DocumentType type) { //设置Http的头信息,编码格式 if (type == Do
/// <summary>

/// 将Web控件导出

/// </summary>

/// <param name="source">控件实例</param>

/// <param name="type">类型:Excel或Word</param>

public void ExpertControl(System.Web.UI.Control source, DocumentType type)

{

//设置Http的头信息,编码格式

if (type == DocumentType.Excel)

{

//Excel

Response.AppendHeader("Content-Disposition","attachment;filename=result.xls");

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



}

else if (type == DocumentType.Word)

{

//Word

Response.AppendHeader("Content-Disposition","attachment;filename=result.doc");

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

}

Response.Charset = "UTF-8";

Response.ContentEncoding = System.Text.Encoding.UTF8;



//关闭控件的视图状态

source.Page.EnableViewState =false;



//初始化HtmlWriter

System.IO.StringWriter writer = new System.IO.StringWriter() ;

System.Web.UI.HtmlTextWriter htmlWriter = new System.Web.UI.HtmlTextWriter(writer);

source.RenderControl(htmlWriter);



//输出

Response.Write(writer.ToString());

Response.End();

}



//文档类型

public enum DocumentType

{

Word,

Excel

}



调用方法:

ExpertControl(this, DocumentType.Word);

这是将整个页面导出为Word

原文转自:http://www.ltesting.net