- 浏览: 2159450 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (401)
- Agile (16)
- Apache Commons (3)
- Architecture (8)
- DB.MongoDB (5)
- DB.Mysql (3)
- DB.Oracle (34)
- DirectoryService (1)
- DotNet (1)
- English (3)
- Groovy (0)
- Html (28)
- Java (67)
- Java.Aixs (7)
- Java.Cache (2)
- Java.jPBM (1)
- Java.Resin (6)
- Java.Spring (4)
- Java.Struts2 (5)
- Java.Tomcat (16)
- Javascript (45)
- Javascript.Google Map (2)
- Javascript.Jquery (8)
- Life (15)
- Maven&Ant (4)
- Network (5)
- OS.Linux (45)
- OS.Windows (10)
- OS.Windows.Office (1)
- PlayFramework (15)
- Python (28)
- Reading notes (11)
- Security (13)
- Server.Apache (3)
- Server.Nginx (7)
- Test (6)
- Tool (15)
- Work.Solution (15)
- Other (20)
- SSO&CAS&Identity (13)
最新评论
-
hutuxiansheng123:
防火墙、Iptables、netfilter/iptables、NAT 概述 -
dacoolbaby:
非常棒的正则表达式,非常适用。万分感谢。
用python分析nginx的access日志 -
loot00:
您好! 我也遇到了相同的错误信息。我是用f_link_lob ...
LOB variable no longer valid after subsequent fetch -
feihangchen:
@OnApplicationStop public clas ...
Play framework 1.2.3 Jobs定时任务、异步任务、引导任务、触发任务、关闭任务 -
洞渊龙王:
谢谢了
www.w3.org被qiang导致logback报错:Connect reset
Jsp页面表格内容Excel导出功能
(不使用IE的ActiveX,同时不需要为了添加Excel导出操作而增加多少工作量)
已经查询出来的表格导出
前台:
后台:
没有查询出来的不分页的数据导出:
前台:
后台:
(不使用IE的ActiveX,同时不需要为了添加Excel导出操作而增加多少工作量)
已经查询出来的表格导出
前台:
导出内容 <div id="divExcel" fileName="文件名 -${year}年${province}${city}${country}(${type_name}).xls"> 导出内容 </div> 导出脚本 <script type="text/javascript">//<![CDATA[ function excel(divId, path){ divId = divId || "divExcel"; path = path || ""; var divExcel = document.getElementById(divId); var formToPrint = document.createElement("form"); var hiddenHtml = document.createElement("input"); hiddenHtml.type = "hidden"; hiddenHtml.name = "hiddenHtml"; hiddenHtml.value = divExcel.innerHTML; formToPrint.appendChild(hiddenHtml); var hiddenName = document.createElement("input"); hiddenName.type = "hidden"; hiddenName.name = "hiddenName"; hiddenName.value = divExcel.fileName; formToPrint.appendChild(hiddenName); document.body.appendChild(formToPrint); formToPrint.method = "post"; formToPrint.action = path; //formToPrint.target = "_blank"; formToPrint.submit(); } //]]>--></script> 导出按钮 <html:button property="toExcel" onclick="excel('divExcel','XXXAction.do?method=toExcel')" value="导出到Excel" />
后台:
public ActionForward toExcel(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { super.renderExcel(request, response); return null; } protected void renderExcel(HttpServletRequest request, HttpServletResponse response) throws IOException { String hiddenHtml = StringUtils.lowerCase(request.getParameter("hiddenHtml")); hiddenHtml = StringUtils.replace(hiddenHtml, "border=0", "border=1"); hiddenHtml = StringUtils.replace(hiddenHtml, "border=\"0\"", "border=\"1\""); String fname = EncryptUtils.encodingFileName(request.getParameter("hiddenName")); response.setCharacterEncoding("UTF-8"); response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment;filename=" + fname); PrintWriter out = response.getWriter(); out.println(hiddenHtml); out.flush(); out.close(); } public static String encodingFileName(String fileName) { String returnFileName = ""; try { returnFileName = URLEncoder.encode(fileName, "UTF-8"); returnFileName = StringUtils.replace(returnFileName, "+", "%20"); returnFileName = new String(fileName.getBytes("GB2312"), "ISO8859-1"); returnFileName = StringUtils.replace(returnFileName, " ", "%20"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return returnFileName; }
没有查询出来的不分页的数据导出:
前台:
<html-el:button property="toExcle" styleId="toExcle" value="导 出" onclick="" /> 根据要导出的数据做成不可见的虚拟表格 <div id="divExcelHide" title="B2B销售数据统计" style="display:none;"> <table width="100%" border="0" align="left" cellpadding="0" cellspacing="1"> <tr> <td colspan="7" align="center"><span style="font-weight:700;font-size:13px">B2B销售数据统计</span></td> </tr> <tr> <th nowrap="nowrap">订单序号</th> <th nowrap="nowrap">网点名称</th> <th nowrap="nowrap">所在区域</th> <th nowrap="nowrap" >下单时间</th> <th nowrap="nowrap">企业名称</th> <th nowrap="nowrap">产品名称</th> <th nowrap="nowrap">产品数量</th> <th nowrap="nowrap">单价</th> <th nowrap="nowrap">总价</th> </tr> <tbody id="exportData"> </tbody> <tr id="exportDataTR" style="display:none;"> <td align="left" nowrap="nowrap"></td> <td align="left" nowrap="nowrap"></td> <td align="left" nowrap="nowrap"></td> <td align="left" nowrap="nowrap"></td> <td align="left" nowrap="nowrap"></td> <td align="left" nowrap="nowrap"></td> <td align="left" nowrap="nowrap"></td> <td align="left" nowrap="nowrap"></td> <td align="left" nowrap="nowrap"></td> </tr> </table> </div> 导出脚本: $("#toExcle").click(function(){ $.ajax({ type: "POST", url: "SalesStat.do?method=exportToExcel", data: "exportExcel=1&" + $("#bottomPageForm").serialize(), dataType: "json", error: function(request, settings) {alert("数据导出失败!");}, success: function(returnDataArray) { $("#exportData").empty(); $exportData = $("#exportData"); $exportDataTR = $("#exportDataTR"); for (var i = 0; i < returnDataArray.list.length; i++) { var cur = returnDataArray.list[i]; $newTR_TD = $exportDataTR.clone().css("display","").appendTo($exportData).children(); $newTR_TD.eq(0).text("=\""+cur.trade_index+"\""); $newTR_TD.eq(1).text(cur.shop_name); $newTR_TD.eq(2).text(cur.p_name); $newTR_TD.eq(3).text(cur.add_date); $newTR_TD.eq(4).text(cur.entp_name); $newTR_TD.eq(5).text(cur.md_name); $newTR_TD.eq(6).text(cur.order_num); $newTR_TD.eq(7).text(cur.price); $newTR_TD.eq(8).text(cur.money); } toExcel('divExcelHide', 'SalesStat.do?method=toExcel'); } }); });
后台:
private final String date_pattern = "yyyy-MM-dd HH:mm:ss"; public ActionForward exportToExcel(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { DynaBean dynaBean = (DynaBean) form; String exportExcel = (String) dynaBean.get("exportExcel"); if (StringUtils.isNotBlank(exportExcel) && "1".equals(exportExcel)) { OrderInfo entity = new OrderInfo(); String province = (String) dynaBean.get("province"); String city = (String) dynaBean.get("city"); String country = (String) dynaBean.get("country"); String trade_index = (String) dynaBean.get("trade_index"); String p_index = ""; String add_date_begin = (String) dynaBean.get("add_date_begin"); String add_date_end = (String) dynaBean.get("add_date_end"); String shop_name = (String) dynaBean.get("shop_name"); if (StringUtils.isNotBlank(country)) { p_index = country; } else if (StringUtils.isNotBlank(city)) { p_index = city; } else { p_index = province; } entity.getMap().put("p_index", p_index); // 5:已结束 String[] default_state = { "5" }; entity.getMap().put("default_state", default_state); if (StringUtils.isNotBlank(trade_index)) { entity.getMap().put("trade_index", trade_index); } DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); if (StringUtils.isNotBlank(add_date_begin)) { entity.getMap().put("add_date_begin", format.parse(add_date_begin)); } if (StringUtils.isNotBlank(add_date_end)) { entity.getMap().put("add_date_end", format.parse(add_date_end)); } if (StringUtils.isNotBlank(shop_name)) { entity.getMap().put("shop_name_like", shop_name); } // 所有B2B订单相关业务都需要追加的查询条件:SALES_MODEL销售模式:0:B2B entity.setSales_model(0); entity.getRow().setFirst(0); // 最大导出500行记录的数据 entity.getRow().setCount(500); List<OrderInfo> entityList = super.getFacade().getOrderInfoService() .getOrderInfoForEntpList(entity); JSONObject result = new JSONObject(); JSONArray list = new JSONArray(); for (int i = 0; i < entityList.size(); i++) { JSONObject obj = new JSONObject(); OrderInfo cur = entityList.get(i); obj.put("trade_index", cur.getTrade_index()); obj.put("shop_name", cur.getMap().get("shop_name")); obj.put("p_name", cur.getMap().get("p_name")); if (cur.getAdd_date() != null) { obj.put("add_date", DateFormatUtils.format(cur.getAdd_date(), date_pattern)); } obj.put("entp_name", cur.getMap().get("entp_name")); obj.put("md_name", cur.getMap().get("md_name")); obj.put("order_num", cur.getOrder_num()); obj.put("price", cur.getMap().get("price")); obj.put("money", cur.getMoney()); list.put(obj); } result.put("list", list); logger.info(result.toString()); super.render(response, result.toString(), "text/x-json;charset=UTF-8"); return null; } return null; } public ActionForward toExcel(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { response.setCharacterEncoding("utf-8"); String name = request.getParameter("hiddenName"); String html = request.getParameter("hiddenHtml"); try { response.setContentType("application/vnd.ms-excel"); response.addHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(name, "UTF-8") + ".xls\""); // response.setContentType("text/plain"); // response.addHeader("Content-Disposition", // "attachment; filename=\"" + URLEncoder.encode(name, "UTF-8") // + ".csv\""); // response.setContentType("application/vnd.ms-word"); // response.addHeader("Content-Disposition", // "attachment; filename=\"" + URLEncoder.encode(name, "UTF-8") // + ".doc\""); PrintWriter out = response.getWriter(); out .println("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"); out.println("<html xmlns=\"http://www.w3.org/1999/xhtml\">"); out.println("<head>"); out.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />"); out.println("<meta http-equiv=\"MSThemeCompatible\" content=\"no\" />"); out.println("<meta name=\"MSSmartTagsPreventParsing\" content=\"true\" />"); out.println("<title>" + name + "</title>"); out.println("</head>"); html = html.replace("border=0", "border=1"); // html = html.replace("<A href=\"[^>]*?\">([^<]*?)<\/A>", "$1"); out.println(html); out.println("</body>"); out.println("</html>"); out.println("<body>"); } catch (Exception e) { e.printStackTrace(); } return null; }
发表评论
-
xml 字符串和xml Document相互转换、xml Document内容输出到http response
2012-11-05 10:07 5568import java.io.ByteArrayOutpu ... -
isAssignableFrom & isInstance
2012-11-02 14:34 1229java.lang.Object extended by ja ... -
Struts 1.1 ExceptionHandler(转)
2012-11-02 10:20 1433转自:SSH项目中利用Exce ... -
X.509、数字签名、CA(Certificate Authority)、自签名证书、PKI
2012-10-18 14:22 6327X.509是由国际电联电信委员会(ITU-T)为单点登录(SS ... -
keytool、keystore、jarsigner、生成自签名证书
2012-10-18 10:27 8055Keytool是Java的密钥和数字证书管理工具,位于JDK_ ... -
Java 类初始化顺序
2012-08-21 14:07 1107class Parent { // 静态变量 pu ... -
java嵌套类、静态嵌套类、内部类
2012-08-21 10:29 2112官网文档:Nested Classes 什么是嵌套类及内部类 ... -
java静态类、静态方法、静态变量、实例变量、线程本地变量、静态线程本地变量
2012-08-21 10:24 1887静态类: 只有嵌套类才 ... -
ProcessBuilder 和 Runtime
2012-07-17 09:26 20948ProcessBuilder.start() 和 Runtim ... -
对称加密、PBE基于密码加密、PKCS
2012-07-05 11:07 7803对称加密:采用单钥密码系统的加密方法,同一个密钥可以同时用作信 ... -
(转)xml schema xsd 入门
2012-06-28 16:05 2472理解XML Schema: XML Schema 初步 (I) ... -
XmlRootElement JAXB注解
2012-06-28 15:23 39094@Retention(value=RUNTIME) @T ... -
jaxb xml数据绑定
2012-06-28 14:22 1323XML Schema编辑工具:XML Spy 常见的XML绑 ... -
(转)jpa 注解
2012-06-25 16:00 1335转自:jpa 注解 1.设置Po ... -
(转)JPA(Java Persistence API)简介
2012-06-25 14:20 1548转自JPA基础(一):全 ... -
Play 内置模板标签(1.2.3版本)
2012-06-18 14:03 5011Play framework 1.2.3 Built-in t ... -
play plugin插件 实现类似Servlet中的拦截器效果
2012-06-15 15:05 3650play plugin和module的区别见:play Mod ... -
Play tag标签,模板、tag中直接调用后台静态java方法
2012-06-15 11:02 2996见Play Framework template engine ... -
play secure模块 验证和授权管理
2012-06-14 15:48 3433参考:http://www.playframework.org ... -
Play framework HTTP Route路由
2012-06-08 14:22 1698路由组件负责把进来的HTTP请求转换成Controller控制 ...
相关推荐
### 如何在JSP中将页面内容导出为Excel文档 ...综上所述,通过简单的代码配置即可实现将JSP页面内容以Excel形式导出的功能。这种方式适用于简单的数据导出场景,对于复杂需求则需考虑引入更多技术支持。
在Java Web开发中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,而导出PDF和Excel文件是常见的需求,比如为了报表或数据分析。在本文中,我们将深入探讨如何在JSP环境中实现这一功能。 首先,我们需要...
Java编程语言在处理数据导出,特别是在生成Excel文件时,提供了多种库,其中之一就是jxls。jxls是一个强大的工具,它允许我们使用Apache POI库的功能,但通过使用JSP标签和简单的模板来简化Excel文件的创建过程。...
本案例通过JSP页面实现了从表单参数获取数据并将其导出至Excel文件的功能。接下来将对这段代码进行逐行分析: 1. **页面配置**: ```jsp ;charset=gb2312" %> ``` 这段配置指定了页面的脚本语言为Java,并设置...
本文将详细介绍如何使用JavaScript(js)和JXL库来实现从JSP页面的table表格导出到Excel,同时确保兼容所有浏览器以及处理复杂的table布局。 首先,让我们了解关键知识点: 1. **JavaScript (js)**:JavaScript是...
JExcelAPI是一个开源项目,允许程序开发者读写Microsoft Excel文件,它支持从Java数据结构直接导出到Excel格式,同时也可读取Excel数据并转换为Java对象。 **描述解析:** 描述中提到的"采用类似EL表达式的方式...
`jxls`扩展了POI的功能,使得我们可以使用类似于JSP的语法来定义Excel模板,然后通过Java代码动态填充这些模板,生成复杂的Excel表格。 在"jxls例子"中,我们可以看到如何利用`jxls`进行实际操作。首先,你需要创建...
在Flex中,我们可能需要将数据导出为CSV(逗号分隔值)格式,以便用户能够轻松地处理和导入到其他应用程序,如电子表格软件如Microsoft Excel。CSV文件是一种通用的数据交换格式,因其简洁性和广泛兼容性而被广泛...
通过使用`jxls`,你可以用类似于JSP语法的方式来定义Excel模板,然后在运行时用Java对象的数据填充这些模板,实现动态生成Excel文件。这极大地简化了代码,提高了开发效率。 1. **jxls库**:`jxls-1.0.5.zip`是`...
6. **Excel数据处理**:"gestionstock23.xls" 文件可能涉及到Excel读写操作,这通常通过Apache POI库或其他类似的库来实现,用于在JSP应用中导入或导出库存数据。 7. **Web安全**:考虑库存管理系统的敏感性,了解...
导出xls文件的过程与word类似,但`Content-Type`应设置为`application/vnd.ms-excel`。同样地,文件名也需要进行URL编码处理。 ```java response.setContentType("application/vnd.ms-excel;charset=utf-8"); ...
如果遇到其他类型,则可以按照类似的方式进行处理。 随后,文档又展示了如何使用jxl库将数据写入Excel文件。这涉及到创建一个可写的Excel工作簿、创建工作表以及向工作表中添加各种类型的单元格(如文本、数值等)...
文件内容还提供了类似的技术实现,只不过这次是将JSP页面的数据导出到Excel中。JavaScript函数AutomateExcel展示了通过创建Excel应用程序的实例,复制页面中的表格数据,并将其粘贴到Excel工作表中。 4. HTML页面中...
和jxl.jar类似,它允许开发者在Java程序中创建、修改Excel文件,但POI支持的版本和功能更为广泛,包括较新的Excel格式(.xlsx)。由于其强大的功能和社区支持,Apache POI被广泛应用于数据分析、报告生成、自动化...
- `write.excel.java` 实现将购物车信息写入Excel文件,可能使用了Apache POI库或其他类似的库来处理Excel文件格式。 8. **安全与优化**: - 在实际应用中,需要考虑安全性,如防止SQL注入、XSS攻击等。 - 优化...
这个库使得开发者可以使用类似于JSP的语法在Excel模板中定义动态区域,从而简化了复杂的数据导出任务。`jxls`的核心思想是将Excel模板视为一个视图层,通过解析模板上的指令与Java代码交互,实现数据的动态绑定。 `...
自己完成类似水晶报表的图标功能,可导出excel报表,可自动设计网上设计报表格式,克服水晶报表的缺点。样品条目,格式,计算公式全可以自动网上设计,不需要一起的编程,全自动化,源码1000块钱可以卖出。
1. **模板语法**:Jxls使用一种类似于JSP的简单模板语法,允许在Excel中插入Java表达式和控制结构。例如,`<jx:each>`标签可以用来迭代Java集合中的元素,将它们填充到对应的单元格中。 2. **数据绑定**:通过AOP...