Asp.net导出Excel方法
来源:互联网 发布:网络建设销售技巧ppt 编辑:程序博客网 时间:2024/05/16 08:28
方法一:
直接导出控件的数据源
/// <summary> /// 从控件导出 /// </summary> /// <param name="title">标题</param> public void outputExcle1(string title) { string fileName = string.Empty; HttpContext.Current.Response.Buffer = true; HttpContext.Current.Response.ClearContent(); HttpContext.Current.Response.ClearHeaders(); //HttpContext.Current.Response.Charset = "utf-8"; //HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8"); HttpContext.Current.Response.Charset = "GB2312"; //设置了类型为中文防止乱码的出现 fileName = string.Format("Export-File {0:yyyy-MM-dd_HH_mm}.xls", DateTime.Now); HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName); HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文 HttpContext.Current.Response.AppendHeader("Content-Type", "text/html; charset=gb2312"); HttpContext.Current.Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 StringWriter tw = new System.IO.StringWriter(); HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw); this.Repeater1.RenderControl(hw); //将服务器控件中的内容输出到hw中 有RenderControl方法的控件应该都支持 if (!string.IsNullOrEmpty(title)) { HttpContext.Current.Response.Write("<b><center><font size=3 face=Verdana color=#0000FF>" + title + "</font></center></b>"); } HttpContext.Current.Response.Write(tw.ToString()); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.Close(); HttpContext.Current.Response.End(); }
方法二,直接将DataTable导出
public void outputExcle2(System.Data.DataTable dt) { StringWriter stringwriter = new StringWriter(); HtmlTextWriter htmlwriter = new HtmlTextWriter(stringwriter); DataGrid excel = new DataGrid(); System.Web.UI.WebControls.TableItemStyle alternatingstyle = new TableItemStyle(); System.Web.UI.WebControls.TableItemStyle headerstyle = new TableItemStyle(); System.Web.UI.WebControls.TableItemStyle itemstyle = new TableItemStyle(); alternatingstyle.BackColor = System.Drawing.Color.LightGray; headerstyle.BackColor = System.Drawing.Color.White; headerstyle.Font.Bold = true; headerstyle.HorizontalAlign = System.Web.UI.WebControls.HorizontalAlign.Center; itemstyle.HorizontalAlign = System.Web.UI.WebControls.HorizontalAlign.Center; ; excel.AlternatingItemStyle.MergeWith(alternatingstyle); excel.HeaderStyle.MergeWith(headerstyle); excel.ItemStyle.MergeWith(itemstyle); excel.GridLines = GridLines.Both; excel.HeaderStyle.Font.Bold = true; excel.DataSource = dt; //输出datatable的内容 excel.DataBind(); excel.RenderControl(htmlwriter); string filepath = "aaa.xls"; string filestr = Server.MapPath(filepath); //filepath是文件的路径 int pos = filestr.LastIndexOf("\\"); string file = filestr.Substring(0, pos); if (!Directory.Exists(file)) { Directory.CreateDirectory(file); } System.IO.StreamWriter sw = new StreamWriter(filestr); sw.Write(stringwriter.ToString()); sw.Close(); }
方法三:
直接导出DataTable 要引用:Microsoft.Office.Interop.Excel.dll
public void outputExcle2(System.Data.DataTable dt) { Application xlApp = new Application(); Workbooks w = xlApp.Workbooks; Workbook workbook = w.Add(XlWBATemplate.xlWBATWorksheet); Worksheet worksheet = (Worksheet)workbook.Worksheets[1]; //写入字段 for (int i = 0; i < dt.Columns.Count; i++) { worksheet.Cells[1, i + 1] = dt.Columns[i].ColumnName; } //写入数值 for (int r = 0; r < dt.Rows.Count; r++) { for (int i = 0; i < dt.Columns.Count; i++) { worksheet.Cells[r + 2, i + 1] = dt.Rows[r][i]; } } worksheet.Columns.EntireColumn.AutoFit();//列宽自适应。 workbook.Saved = true; workbook.SaveCopyAs(Server.MapPath("test.xls")); xlApp.Quit(); GC.Collect();//强行销毁 Response.Redirect("test.xls"); }
- asp.net导出excel方法
- Asp.net导出Excel方法
- asp.Net导出Excel的快捷方法
- Asp.NET导出excel的方法
- asp.net导出Excel文件方法
- asp.net 导出Excel方法汇总
- asp.net 导出Excel/Word的方法
- asp.net导出Excel的方法
- asp.net导出excel方法总结
- ASP.NET导出EXCEL方法总结
- ASP.net 导出Excel表方法汇总
- asp.net导出excel
- asp.net导出Excel
- asp.net导出excel
- asp.net导出Excel
- Asp.net 导出Excel
- asp.net导出excel
- asp.net 导出excel
- 与Pocket Outlook相关的一些代码片段(C#)
- 通过js调用exe
- smarty总结(一)
- Android Bitmap 操作
- Swing开发的收获心得(三)---------Jtable导成Excel
- Asp.net导出Excel方法
- smarty总结之缓存
- C语言教程第四章: 数组
- offsetLeft你理解了吗?
- ecshop模板二次开发-ecshopdev小鸟(http://www.ecshopdev.com)
- java内部类
- 项目后的启发
- LSP The The Liskov Substitution Principle(里氏代换原则)
- JAVA判断字符串是否为数字或者是否以0开头