在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
方法一:带StringBuilder 方法的导出 该方法是将所有的数据通过html的形式写入到StringBuilder 中,然后通过response导出。 熟悉html格式的人可以改变成各种格式。 List<U> objList = new List<U>(); objList = BLL.GetInfo();//读取数据 StringBuilder sb = new StringBuilder(); sb.Append("<style type=\"text/css\">"); sb.Append("<!--"); sb.Append(".text"); sb.Append("{mso-style-parent:style0;"); sb.Append("font-size:10.0pt;"); sb.Append("font-family:\"Arial Unicode MS\", sans-serif;"); sb.Append("mso-font-charset:0;"); sb.Append(@"mso-number-format:\@;"); sb.Append("text-align:center;"); sb.Append("border:.5pt solid black;"); sb.Append("white-space:normal;}"); sb.Append("-->"); sb.Append("</style>"); sb.Append("<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">"); sb.Append("<tr align=\"Center\" style=\"font-weight:bold;\">"); sb.Append("<td>ID</td><td>用户名</td><td>真实姓名</td><td>省份</td><td>注册时间</td"); sb.Append("</tr>"); foreach (U item in objList) { sb.Append("<tr align=\"Center\"><td>" + item.id + "</td><td>" + item.uName + "</td><td>" + item.rName + "</td><td>" + item.proId + "</td><td>" + item.regDate + "</td></tr>"); } sb.Append("</table>"); System.Web.HttpContext.Current.Response.Clear(); System.Web.HttpContext.Current.Response.Charset = "GB2312"; // System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8; // 添加头信息,为"文件下载/另存为"对话框指定默认文件名 System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=myU.xls"); // 添加头信息,指定文件大小,让浏览器能够显示下载进度 // System.Web.HttpContext.Current.Response.AddHeader("Content-Length",sb.ToString()); // 指定返回的是一个不能被客户端读取的流,必须被下载 System.Web.HttpContext.Current.Response.ContentType = "application/ms-excel"; // 把文件流发送到客户端 System.Web.HttpContext.Current.Response.Write(sb.ToString()); // 停止页面的执行 System.Web.HttpContext.Current.Response.End(); 方法二:带StringWriter的导出方法 该方法的格式不容易改变 方法与上面原理相同是将数据写入到StringWriter 中 让后到导出 众所周知,Respone.Write()是输出Html流程序给用户的。考虑到一个标准的Web页面的是有多种呈现方式的, 方法三:datatable导出 该方法是response一行一行导出的,你可以根据自己的需求添加相应的行。 /// <summary> /// DataTable中的数据导出到Excel并下载 /// </summary> /// <param name="dt">要导出的DataTable</param> /// <param name="FileType">类型</param> /// <param name="FileName">Excel的文件名</param> public void CreateExcel(DataTable dt, string FileType, string FileName) { Response.Clear(); Response.Charset = "UTF-8"; Response.Buffer = true; Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); Response.AppendHeader("Content-Disposition", "attachment;filename=\"" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8) + ".xls\""); Response.ContentType = FileType; string colHeaders = string.Empty; string ls_item = string.Empty; DataRow[] myRow = dt.Select(); int i = 0; int cl = dt.Columns.Count; foreach (DataRow row in myRow) { for (i = 0; i < cl; i++) { if (i == (cl - 1)) {
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论