レポートエクスポートモジュールの実装


表のエクスポート方法は少なくとも3つあり、1つ目はExcelでHTMLをサポートし、コントロールのRenderControl()メソッドを直接利用して、コントロールのHTMLコードをExcelタイプでクライアントに出力することである.第二に、Excelのcomインタフェースライブラリを利用して完成する.3つ目は、データ・アクセス・オブジェクトを使用してExcelファイルを操作し、Excelをエクスポートする効果です.
以下が1つ目の方法です.
//    

 public void Report(System.WEB.UI.Pagepage,Repeater rpt,string title,string type)

 {

	//             

	HttpContext.Current.Response.Clear(  ){……};

	//      HTTP  

    	HttpContext.Current.Response.Charset ="uft-8";

    	// HTTP       

	HttpContext.Current.Response.AddHeader("Content-Disposition",

	"attachment;filename="+HttpUtility.UrlEncode(DateTime.Now.ToString("yyyyMMddHHMMss")+        ".xls",Encodin	g.UTF8).ToString(  ){……});

	//      HTTPMIME  

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

	//                                       

	page.EnableViewState = false;

	System.IO.StringWriteroStringWriter = new System.IO.StringWriter(  ){……};

	System.WEB.UI.HtmlTextWriter oHtmlTextWriter= 

	new System.WEB.UI.HtmlTextWriter(oStringWriter);

	//               HtmlTextWriter   

	rpt.RenderControl(oHtmlTextWriter);

	//      HTTP     

	HttpContext.Current.Response.Write("<html><head><metahttp-equiv=Content-Type        content=\"text/html;cha	rset=utf-8\"></head><body><table><b>"+     +"</b></td></tr></table><table>"+"<thead>  </thead><tbody>");

	string temp = oStringWriter.ToString(  ){……};

	HttpContext.Current.Response.Write(temp);

	HttpContext.Current.Response.Write("</tbody></table></body></html>");

	//      

	HttpContext.Current.Response.End(){……};

}

フロントNetページに含まれるhtml:
ヘッダRepeaterコントロール