把Web Control导出为Excel或Word

/// <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

posted on 2005-03-22 21:29  FenixStudio  阅读(312)  评论(0)    收藏  举报

导航