Ext.Net导出Excel

最近项目结束了,其中用到了Ext.Net的GridPanel导出Excel,简单的过程如下:

导出按钮的事件:

 1 protected void btnExport_DirectClick(object sender, DirectEventArgs e)
 2         {
 3             if (Session["BorrowRecord"] != null)
 4             {
 5                 DataTable tbBorrowRecord = (DataTable)Session["BorrowRecord"];
 6                 if (tbBorrowRecord.Rows.Count > 0)
 7                 {
 8                     string content = m_BorrowBLL.GetExportHtml(tbBorrowRecord); // 把DataTable表格转成HTML
 9                     string title = "工具借用记录导出" + DateTime.Now.ToString("yyyyMMddHHmmss");
10                     Session["Content"] = content;
11                     UIHelper.LogInfo("导出超修记录Exce", OperatorType.导出);
12                     X.Redirect("/Ashx/LoadExcel.ashx?title=" + title);
13                 }
14                 else
15                 {
16                     // 没有数据,提示没有数据无法导出
17                     Notification.Show(
18                         new NotificationConfig
19                         {
20                             Title = "提示",
21                             Icon = Icon.Information,
22                             Html = "没有数据,无法导出!"
23                         });
24                 }
25             }
26         }

根据DataTable拼凑出Html table结构:

 1 /// <summary>
 2         /// 根据借用记录数据表格获取导出的HTML
 3         /// </summary>
 4         /// <param name="tbBorrowRecord"></param>
 5         /// <returns></returns>
 6         public string GetExportHtml(DataTable tbBorrowRecord)
 7         {
 8             tbBorrowRecord = tbBorrowRecord.DefaultView.ToTable(false, new string[] { "SectionName", "Category", "Model", "Code", "BorrowMan", "BorrowTime", "ReturnMan", "ReturnTime", "State" });
 9             string html = string.Empty;
10             string datarow = string.Empty;
11             foreach (DataRow drBorrow in tbBorrowRecord.Rows)
12             {
13                 string content = string.Empty; // 数据内容
14                 datarow += "<tr>";
15                 for (int i = 0; i < tbBorrowRecord.Columns.Count; i++)
16                 {
17                     if (tbBorrowRecord.Columns[i].ColumnName == "State")
18                     {
19                         switch (drBorrow[i].ToString())
20                         {
21                             case "1":
22                                 content = "未归还";
23                                 break;
24                             case "2":
25                                 content = "已归还";
26                                 break;
27                         }
28                     }
29                     else
30                     {
31                         content = drBorrow[i].ToString();
32
33                     }
34                     datarow += "<td>" + content + "</td>";
35                 }
36                 datarow += "</tr>";
37             }
38             html = string.Format(@"<html>
39                                           <meta http-equiv=‘Content-Type‘ content=‘text/html;charset=‘utf-8‘ />
40                                           <head></head>
41                                           <body>
42                                              <table style=‘border-collapse:collapse‘ bordercolor=‘#111111‘ cellSpacing=‘0‘ cellPadding=‘2‘ border=‘1‘>
43                                                 <thead>
44                                                 <th>工区</th>
45                                                 <th>工具类型</th>
46                                                 <th>规格型号</th>
47                                                 <th>条形码</th>
48                                                 <th>借用人</th>
49                                                 <th>借用日期</th>
50                                                 <th>归还人</th>
51                                                 <th>归还日期</th>
52                                                 <th>状态</th>
53                                                 </thead>
54                                                 {0}
55                                             </table>
56                                           </body>
57                                           </html>", datarow);
58
59             return html;
60         }

在一般处理程序中导出Excel

 1 using System.Web;
 2
 3 namespace HuaweiSoftware.EMMS_JCW.UI.Ashx
 4 {
 5     /// <summary>
 6     /// 导出记录到Excel
 7     /// </summary>
 8     public class LoadExcel : IHttpHandler, System.Web.SessionState.IRequiresSessionState
 9     {
10         public void ProcessRequest(HttpContext context)
11         {
12             string content = context.Session["content"].ToString();
13             string title = context.Request["title"];
14             context.Session.Remove("content");
15
16             // 设置http流格式,写入拼接Excel内容
17             context.Response.Clear();
18             context.Response.Buffer = true;
19             context.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(title) + ".xls");
20             context.Response.ContentEncoding = System.Text.Encoding.UTF8;
21             context.Response.ContentType = "application/vnd.ms-excel";
22             context.Response.Write(content);
23             context.Response.End();
24         }
25
26         public bool IsReusable
27         {
28             get
29             {
30                 return false;
31             }
32         }
33     }
34 }

时间: 2024-08-11 07:37:25

Ext.Net导出Excel的相关文章

ext导出excel

poi导出excel http://blog.csdn.net/gavinloo/article/details/6707828 ext自带导出excel http://www.cnblogs.com/kunpengit/archive/2012/07/26/2610236.html

ext.net 2.5 导出excel的用法

前台页面的导入,导出 <ext:FileUploadField ID="FileUploadField_Import" runat="server" ButtonOnly="true" ButtonText="导入" Icon="PackageIn"> <DirectEvents> <Change OnEvent="ImportExcelClick">

Struts2+ExtJS+poi导出excel

首先生成Excel import java.io.IOException; import java.io.OutputStream; import javax.servlet.http.HttpServletResponse; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.

Oracle导出excel

oracle导出excel(非csv)的方法有两种,1.使用sqlplus  spool,2.使用包体 现将网上相关代码整理后贴出以备不时之需: 使用sqlplus: 使用sqlplus需要两个文件:sql脚本文件和格式设置文件. 去除冗余信息,main.sql --main.sql 注意,需要在sqlplus下运行 非plsql命令行下 set linesize 200 set term off verify off feedback off pagesize 999 set markup h

thinkphp导入导出excel表单数据

在PHP项目经常要导入导出Excel表单. 先去下载PHPExcel类库文件,放到相应位置. 我在thinkphp框架中的位置为ThinkPHP/Library/Org/Util/ 导入 在页面上传excel文件提交到后台,利用form表单提单即可 <form method="post" enctype="multipart/form-data" action="" > <input type="submit"

.NET NPOI导出Excel详解

NPOI,顾名思义,就是POI的.NET版本.那POI又是什么呢?POI是一套用Java写成的库,能够帮助开发者在没有安装微软Office的情况下读写Office的文件. 支持的文件格式包括xls, doc, ppt等. 官方网站:http://npoi.codeplex.com/ nuget直接获取使用 一.NPOI生成Excel //创建工作薄 var workbook = new HSSFWorkbook(); //创建表 var table = workbook.CreateSheet(

导出excel——弹出框

表单提交 凡是表单提交(表单提交分3种,见下面的1.2.3)的话,并且设置了表单标签的enctype="multipart/form-data"属性,那么这个时候就会打开弹出框. 1.表单提交 2.js表单提交 3.jquery.extjs等等其他的表单提交 代码示例 //jsp代码 <s:form id="myform1" method="post" enctype="multipart/form-data">

利用Extjs导出excel文件(转)

最近在做一个项目,需要在原先的表格的基础上导出excel文件,原先是想用java后台来实现这个功能,但是,后来发现,原来extjs也附带有导出excel表的功能,就在GridPanel的基础上导出,http://www.blogjava.net/rockblue1988/archive/2012/02/29/370977.html,这是我做的时候,参考的一篇网上的文章.具体的做法是,将extjsGridPanel里面的数据拿出来,转换成xml,然后发送给后台,后台响应之后,将数据输出为Excel

.NET编程实现采用COM组件导出Excel文件实例

将.NET数据导出为Excel文件,有许多种方法,我这里介绍采用COM组件来操作Excel文件,并且还会涉及异步.同步.进程管理.文件定位等内容,使用WPF做到一个尽量可用的导出界面. 一.WPF前台 这个就不用多说了,堆上几个按钮,做一个数据录入的东西,一个状态条: 我这里的数据录入,就是用了几个Textbox,实际上大家可以用任何东西(DataGrid.ListView等),因为在最后都会转成List<MyData>的形式进行导出的,MyData是表示数据记录的对象: 1 // 自定义数据