using System; using System.Collections.Generic; using System.Linq; using System.Web; public class ExportOffice { //导出页面或web控件方法#region 导出页面或web控件方法 /**/ /// <summary> /// 将Web控件或页面信息导出(不带文件名参数) /// </summary> /// <param name="source">控件实例</param> /// <param name="DocumentType">导出类型:Excel或Word</param> public void ExportControl(System.Web.UI.Control source, string DocumentType) { //设置Http的头信息,编码格式 if (DocumentType == "Excel") { //Excel HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("下载文件.xls", System.Text.Encoding.UTF8)); HttpContext.Current.Response.ContentType = "application/ms-excel"; } else if (DocumentType == "Word") { //Word HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("下载文件.doc", System.Text.Encoding.UTF8)); HttpContext.Current.Response.ContentType = "application/ms-word"; } HttpContext.Current.Response.Charset = "UTF-8"; HttpContext.Current.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); //输出 HttpContext.Current.Response.Write(writer.ToString()); HttpContext.Current.Response.End(); } /**/ /// <summary> /// 将Web控件或页面信息导出(带文件名参数) /// </summary> /// <param name="source">控件实例</param> /// <param name="DocumentType">导出类型:Excel或Word</param> /// <param name="filename">保存文件名</param> public void ExportControl(System.Web.UI.Control source, string DocumentType, string filename) { //设置Http的头信息,编码格式 if (DocumentType == "Excel") { //Excel HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(filename + ".xls", System.Text.Encoding.UTF8)); HttpContext.Current.Response.ContentType = "application/ms-excel"; } else if (DocumentType == "Word") { //Word HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(filename + ".doc", System.Text.Encoding.UTF8)); HttpContext.Current.Response.ContentType = "application/ms-word"; } HttpContext.Current.Response.Charset = "UTF-8"; HttpContext.Current.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); //输出 HttpContext.Current.Response.Write(writer.ToString()); HttpContext.Current.Response.End(); } #region 调用说明 //方法ExportControl(System.Web.UI.Control source, string DocumentType,string filename)中 //第一个参数source表示导出的页面或控件名,当为datagrid或dataList控件时,在导出Excel/word文件时,必须把控件的分页、排序等属性去除并重新绑定, //第二个参数DocumentType表示导出的文件类型word或excel //第三个参数filename表示需要导出的文件所取的文件名 //调用方法: //ExportData export=new ExportData(); //export.ExportControl(this, "Word","testfilename");//当为this时表示当前页面 //这是将整个页面导出为Word,并命名为testfilename #endregion }
<!DOCTYPE html> <html xmlns:v='urn:schemas-microsoft-com:vml' xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'> <head runat="server"> <!--[if gte mso 9]><xml><w:WordDocument><w:View>Print</w:View><w:TrackMoves>false</w:TrackMoves><w:TrackFormatting/><w:ValidateAgainstSchemas/><w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid><w:IgnoreMixedContent>false</w:IgnoreMixedContent><w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText><w:DoNotPromoteQF/><w:LidThemeOther>EN-US</w:LidThemeOther><w:LidThemeAsian>ZH-CN</w:LidThemeAsian><w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript><w:Compatibility><w:BreakWrappedTables/><w:SnapToGridInCell/><w:WrapTextWithPunct/><w:UseAsianBreakRules/><w:DontGrowAutofit/><w:SplitPgBreakAndParaMark/><w:DontVertAlignCellWithSp/><w:DontBreakConstrainedForcedTables/><w:DontVertAlignInTxbx/><w:Word11KerningPairs/><w:CachedColBalance/><w:UseFELayout/></w:Compatibility><w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel><m:mathPr><m:mathFont m:val='Cambria Math'/><m:brkBin m:val='before'/><m:brkBinSub m:val='--'/><m:smallFrac m:val='off'/><m:dispDef/><m:lMargin m:val='0'/> <m:rMargin m:val='0'/><m:defJc m:val='centerGroup'/><m:wrapIndent m:val='1440'/><m:intLim m:val='subSup'/><m:naryLim m:val='undOvr'/></m:mathPr></w:WordDocument></xml><![endif]--> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <style> table{ border: solid 1px black;border-collapse: collapse;} td{ 200px;border: solid 1px black;word-wrap: break-word; word-break: break-all;} body,tr,td{font-size:14px;} </style> </head> <body> <form id="form1" runat="server"> <table style="margin:0px auto;" border="1" > <caption style="font:20px/30px Arail;"><asp:Literal runat="server" ID="lbl_Caption"></asp:Literal></caption> <tr> <td><asp:Literal runat="server" ID="lbl_username_title"></asp:Literal></td> <td><asp:Literal runat="server" ID="lbl_username_value"></asp:Literal></td> <td><asp:Literal runat="server" ID="lbl_userCode_title"></asp:Literal></td> <td><asp:Literal runat="server" ID="lbl_userCode_value"></asp:Literal></td> </tr> <tr> <td><asp:Literal runat="server" ID="lbl_sex_title"></asp:Literal></td> <td><asp:Literal runat="server" ID="lbl_sex_value"></asp:Literal></td> <td><asp:Literal runat="server" ID="lbl_birthday_title"></asp:Literal></td> <td><asp:Literal runat="server" ID="lbl_birthday_value"></asp:Literal></td> </tr> <tr> <td><asp:Literal runat="server" ID="lbl_nationality_title"></asp:Literal></td> <td><asp:Literal runat="server" ID="lbl_nationality_value"></asp:Literal></td> <td><asp:Literal runat="server" ID="lbl_company_title"></asp:Literal></td> <td><asp:Literal runat="server" ID="lbl_company_value"></asp:Literal></td> </tr> <tr> <td><asp:Literal runat="server" ID="lbl_hospitalName_title"></asp:Literal></td> <td><asp:Literal runat="server" ID="lbl_hospitalName_value"></asp:Literal></td> <td><asp:Literal runat="server" ID="lbl_tjDate_title"></asp:Literal></td> <td><asp:Literal runat="server" ID="lbl_tjDate_value"></asp:Literal></td> </tr> <asp:Literal runat="server" ID="lbl_data"> </asp:Literal> </table> </form> </body> </html>