- 浏览: 324214 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
huangyunbin:
swc.advance(); 这个什么时候被调用是最核心的 ...
滑动窗口计数java实现 -
80后的童年2:
深入浅出MongoDB应用实战开发网盘地址:https://p ...
MongoDB 从入门到精通专题教程 -
rryymmoK:
深入浅出MongoDB应用实战开发下载地址:http://pa ...
MongoDB 从入门到精通专题教程 -
u012352249:
怎么支持多个窗口啊?
滑动窗口计数java实现 -
rryymmoK:
深入浅出MongoDB应用实战开发百度网盘下载:链接:http ...
MongoDB 从入门到精通专题教程
据我所知 Java 导 Excel 报表有三种方法:
1, 在 Servlet 直接向客户端输出制表符,如下:
这种方法最原始, 编起来最麻烦.
2, 利用JSP模板, 下面详述具体实现, 这种方式需要先利用office软件先生成Html模板,然后将其转化为JSP页面, 不依赖第三方实现, 比较轻量级, 适合简单应用.
3, 第三方库, jxl.jar, 这种方式最灵活,网上文章也多,不再赘述.
Struts 配置文件:
Action实现:
JSP 报表页面:
系统下载页面:
1, 在 Servlet 直接向客户端输出制表符,如下:
PrintWriter out = response.getWriter(); out.println("xxxx\t"); out.flush(); out.close();
这种方法最原始, 编起来最麻烦.
2, 利用JSP模板, 下面详述具体实现, 这种方式需要先利用office软件先生成Html模板,然后将其转化为JSP页面, 不依赖第三方实现, 比较轻量级, 适合简单应用.
3, 第三方库, jxl.jar, 这种方式最灵活,网上文章也多,不再赘述.
Struts 配置文件:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd"> <struts-config> <form-beans /> <global-exceptions /> <global-forwards /> <action-mappings > <action path="/exportExcel" type="com.mypack.struts.action.ExportExcelAction" cancellable="true"> <forward name="downloadPage" path="/jsp/downloadPage.jsp" /> </action> </action-mappings> <message-resources parameter="com.mypack.struts.ApplicationResources" /> </struts-config>
Action实现:
/* * Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtl */ package com.mypack.struts.action; import java.util.ArrayList; import java.util.List; import java.util.UUID; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * MyEclipse Struts * Creation date: 11-07-2010 * * XDoclet definition: * @struts.action validate="true" */ public class ExportExcelAction extends Action { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { List list = new ArrayList(); for (int i = 0; i < 100; i ++) { list.add(UUID.randomUUID().toString()); } request.setAttribute("result", list); System.out.println(list); response.setContentType("application/vnd.ms-excel;charset=UTF-8"); //response.setHeader("Content-Disposition" ,"attachment;filename=report"); response.setHeader ("Content-Disposition","attachment;filename="+ UUID.randomUUID() +".xls"); return mapping.findForward("downloadPage"); } }
JSP 报表页面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"> <head> <meta http-equiv=Content-Type content="text/html; charset=gb2312"> <meta name=ProgId content=Excel.Sheet> <meta name=Generator content="Microsoft Excel 11"> <link rel=File-List href="Book2.files/filelist.xml"> <link rel=Edit-Time-Data href="Book2.files/editdata.mso"> <link rel=OLE-Object-Data href="Book2.files/oledata.mso"> <!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Author>微软用户</o:Author> <o:LastAuthor>微软用户</o:LastAuthor> <o:Created>2010-11-07T08:34:34Z</o:Created> <o:LastSaved>2010-11-07T08:38:14Z</o:LastSaved> <o:Company>微软中国</o:Company> <o:Version>11.9999</o:Version> </o:DocumentProperties> </xml><![endif]--> <style> <!--table {mso-displayed-decimal-separator:"\."; mso-displayed-thousand-separator:"\,";} @page {margin:1.0in .75in 1.0in .75in; mso-header-margin:.5in; mso-footer-margin:.5in;} tr {mso-height-source:auto; mso-ruby-visibility:none;} col {mso-width-source:auto; mso-ruby-visibility:none;} br {mso-data-placement:same-cell;} .style0 {mso-number-format:General; text-align:general; vertical-align:middle; white-space:nowrap; mso-rotate:0; mso-background-source:auto; mso-pattern:auto; color:windowtext; font-size:12.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:宋体; mso-generic-font-family:auto; mso-font-charset:134; border:none; mso-protection:locked visible; mso-style-name:常规; mso-style-id:0;} td {mso-style-parent:style0; padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:windowtext; font-size:12.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:宋体; mso-generic-font-family:auto; mso-font-charset:134; mso-number-format:General; text-align:general; vertical-align:middle; border:none; mso-background-source:auto; mso-pattern:auto; mso-protection:locked visible; white-space:nowrap; mso-rotate:0;} ruby {ruby-align:left;} rt {color:windowtext; font-size:9.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:宋体; mso-generic-font-family:auto; mso-font-charset:134; mso-char-type:none; display:none;} --> </style> <!--[if gte mso 9]><xml> <x:ExcelWorkbook> <x:ExcelWorksheets> <x:ExcelWorksheet> <x:Name>Sheet1</x:Name> <x:WorksheetOptions> <x:DefaultRowHeight>285</x:DefaultRowHeight> <x:Selected/> <x:Panes> <x:Pane> <x:Number>3</x:Number> <x:ActiveRow>6</x:ActiveRow> <x:ActiveCol>1</x:ActiveCol> </x:Pane> </x:Panes> <x:ProtectContents>False</x:ProtectContents> <x:ProtectObjects>False</x:ProtectObjects> <x:ProtectScenarios>False</x:ProtectScenarios> </x:WorksheetOptions> </x:ExcelWorksheet> <x:ExcelWorksheet> <x:Name>Sheet2</x:Name> <x:WorksheetOptions> <x:DefaultRowHeight>285</x:DefaultRowHeight> <x:ProtectContents>False</x:ProtectContents> <x:ProtectObjects>False</x:ProtectObjects> <x:ProtectScenarios>False</x:ProtectScenarios> </x:WorksheetOptions> </x:ExcelWorksheet> <x:ExcelWorksheet> <x:Name>Sheet3</x:Name> <x:WorksheetOptions> <x:DefaultRowHeight>285</x:DefaultRowHeight> <x:ProtectContents>False</x:ProtectContents> <x:ProtectObjects>False</x:ProtectObjects> <x:ProtectScenarios>False</x:ProtectScenarios> </x:WorksheetOptions> </x:ExcelWorksheet> </x:ExcelWorksheets> <x:WindowHeight>9585</x:WindowHeight> <x:WindowWidth>18195</x:WindowWidth> <x:WindowTopX>480</x:WindowTopX> <x:WindowTopY>105</x:WindowTopY> <x:ProtectStructure>False</x:ProtectStructure> <x:ProtectWindows>False</x:ProtectWindows> </x:ExcelWorkbook> </xml><![endif]--> </head> <body link=blue vlink=purple> <table x:str border=0 cellpadding=0 cellspacing=0 width=368 style='border-collapse: collapse;table-layout:fixed;width:276pt'> <col width=368 style='mso-width-source:userset;mso-width-alt:11776;width:276pt'> <tr height=19 style='height:14.25pt'> <td height=19 width=368 style='height:14.25pt;width:276pt'>RandomUUID</td> </tr> <c:forEach items="${result}" var="r"> <tr height=19 style='height:14.25pt'> <td height=19 style='height:14.25pt'>${r}</td> </tr> </c:forEach> <![if supportMisalignedColumns]> <tr height=0 style='display:none'> <td width=368 style='width:276pt'></td> </tr> <![endif]> </table> </body> </html>
系统下载页面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <script type="text/javascript" src="/excel/js/jquery-1.3.2.min.js"></script> </head> <body> <input id="b" type="button" value="导 出 报 表" onclick="exportExcel();"> <a href="/excel/exportExcel.do" target="downloadf">导 出 报 表</a> <div id="res"></div> <iframe name="downloadf" style="display:none;"> 1111111111 </iframe> </body> <script type="text/javascript"> function exportExcel() { window.open("/excel/exportExcel.do","a1") //pic.document.execCommand("SaveAs") return; $.get("/excel/exportExcel.do", function(data) { alert(data); }); } </script> </html>
发表评论
-
滑动窗口计数java实现
2016-02-20 13:13 11917滑动窗口计数有很多使用场景,比如说限流防止系统雪崩。相比计 ... -
面向对象程序设计思想(精华)
2014-11-12 15:52 1482面向对象语言具有封装,继承,多态的特征。那么在用面象对象语言 ... -
YY直播厅蠕虫病毒代码
2014-09-22 21:52 2504本来是可以直接通过<script>标签实现的, ... -
找出序列中不重复的元素
2014-09-17 21:51 1954阿里的一个面试题: 一个序列里除了一个元素,其他元素都会重复出 ... -
Apache Http Server Rewrite
2012-06-04 13:13 1192apache的rewrite功能很强大,详细参考:http:/ ... -
java操作MQ
2011-12-30 14:21 2874package mq; import jav ... -
实现动态验证码
2011-07-08 13:10 1193import java.awt.Color; imp ... -
简单统计代码行数
2010-12-30 17:34 1472真的很多,我刚写了个程序统计了一下,我们项目才695个类 并 ... -
采用MD5单向加密
2010-11-26 10:42 1319public static String get ... -
在报表中格式化货币
2010-11-25 10:01 1766最近在用FineReport这个工具进行系统的报表开发,发现在 ... -
Java正则实现EL表达式
2010-11-04 16:19 4493public static void main(Stri ... -
js格式化货币格式
2010-11-01 13:41 3809String.prototype.asCurren ... -
Hessian 发布服务及客户端实现
2010-10-19 13:36 2110服务接口: package com.test; pub ... -
java 项目中嵌入 jetty,并发布servlet
2010-10-13 11:47 2191package com.utan.tfs.jetty; ... -
TreeSet<T> 简单实现
2010-08-26 17:31 1559package com.mypack.ds; i ... -
SAX 解析 XML 实例
2010-08-21 14:32 2409xml文件: <?xml version=" ... -
利用 Spring 中的 Resource 读取文件和网络资源
2010-08-21 12:04 3784利用 Spring 中的 Resource 读取文件和网络资源 ... -
NIO SAX
2010-08-20 18:51 1091NIO与SAX 直接上教程 -
socket 发送 soap 请求
2010-08-19 23:46 3863package com.mypack.soap.client; ... -
HttpUrlConnection 发送 SOAP 请求,SAX 解析 SOAP 响应
2010-08-19 23:38 8232HttpUrlConnection 发送 SOAP 请求,SA ...
相关推荐
Struts1.2 + ExtJS + 导出Excel项目是一个基于Web的应用开发框架组合,用于构建企业级的Java应用程序。这个项目的重点在于整合Struts1.2(一个经典的MVC框架)与ExtJS(一个富客户端JavaScript库)来提供用户友好的...
4. **页面显示**:在Struts的视图层,通常使用JSP页面来展示报表。我们可以通过`JasperViewer`或者自定义的Servlet来在浏览器中显示报表。如果要在页面上直接嵌入报表,可以使用IFrame或者JavaScript进行处理。 5. ...
总结来说,这个项目通过Struts2作为控制器处理用户请求,iReport用于设计报表模板,JasperReport负责生成报表,而Highcharts Export Server则提供了额外的图表导出能力。这种组合提供了一套完整的报表系统,可以满足...
6. 页面集成:在Struts2的视图层,通常是一个JSP页面,可以通过Struts2的标签库来调用Action并展示报表。例如,使用标签显示报表内容,或者使用标签执行Action并重定向到报表页面。 总的来说,"整合Struts2.1+...
- **单元格格式设置**:为了使导出的Excel报表具有良好的视觉效果,该方法设置了多种单元格格式,包括标题格式、左上角表头格式、内容表头格式、区域表头格式以及内容格式等。 - **具体实现步骤**: 1. **定义...
Struts2 + JasperReports4 + DB2 Demo是一个典型的Java企业级应用示例,结合了流行的MVC框架Struts2、报表工具JasperReports4以及关系型数据库DB2,用于展示如何在实际项目中进行数据展示和处理。在这个项目中,...
在Java编程领域,导入和导出Excel表格是一项常见的任务,特别是在数据处理、报表生成和数据分析等场景中。本项目提供了一个整合了Spring、Hibernate和Struts2(简称SSH)三大框架的小型应用示例,利用Apache POI库来...
6. **项目发布与运行**:解压下载的安装包后,确保所有依赖库已正确导入,将项目部署到应用服务器(如Tomcat),启动服务器,访问`index.jsp`,系统应能按照预期展示或导出Excel报表。 7. **代码注解**:在实际开发...
本话题主要聚焦于如何在Java Web应用中,利用Apache POI库来实现Excel的读写操作,具体涉及JSP(JavaServer Pages)和Struts框架的集成应用。 首先,Apache POI是一个流行的开源库,专门用于处理Microsoft Office...
- 考虑报表的分页、排序和过滤功能,以及动态加载和导出报表的实现。 - 优化性能,避免在高并发环境下因报表生成导致的服务器压力过大。 总结来说,`struts2 + jasper report`的组合为Java Web应用提供了强大的报表...
首先,从标题"Java将数据导出Excel.docx"我们可以理解,这是一个关于Java编程的教程,内容涉及如何将数据导出到Excel文件,特别是docx格式的文件。通常,docx文件是Microsoft Word文档的格式,但在这里可能是指包含...
jsp通过POI将数据从数据库导出至EXCEL,可与CSDN中资源 【jsp中使用poi导入导出Excel http://download.csdn.net/detail/guan_xiu/5978843】对比学习; 前者是使用最原始的方法jsp+jdbc+poi; 后者加入了struts处理...
通过Action,开发者可以编写处理报表生成、查询、导出等功能的代码,而视图部分则可以通过JSP或FreeMarker等技术进行设计,使得界面交互更加灵活。 报表的设计通常涉及以下几个关键环节: 1. 数据源:报表的数据...
在Java开发中,导入和导出Excel文件是常见的数据处理需求,特别是在数据分析、报表生成以及数据交换场景下。本教程将详细讲解如何使用Java技术,包括JSP(JavaServer Pages)和Struts框架,来实现Excel文件的导入与...
- **报表导出**:将学生信息生成Excel或其他格式的报表,方便打印和备份。 5. **开发工具与框架** 开发过程中可能使用到的工具有Eclipse、IntelliJ IDEA等集成开发环境,以及Tomcat、Jetty等应用服务器。为了提高...
4. 工资报表:生成工资条,显示每位员工的工资详情,同时支持导出为Excel或PDF格式,方便打印和存档。 5. 查询统计:提供按部门、职位、时间等条件的工资数据查询功能,帮助管理者分析工资支出情况。 在开发过程中...
JasperReport则是一个开源的报表生成工具,可以用于创建复杂的报表并导出多种格式,如PDF、HTML、Excel等。将Struts2与JasperReport结合,可以实现Web应用中的动态报表生成和展示。 首先,我们需要理解Struts2的...
接着,通过 JasperFillManager 填充数据到报表,最后利用 JasperExportManager 将报表导出为所需格式。在 Struts2 中,我们可以将生成的报表作为流返回给客户端,或者保存到服务器端供用户下载。 在实际应用中,...
JasperReports是一个强大的开源报表工具,它允许开发者创建复杂的报告,包括表格、图表、图像和文本,然后以PDF、HTML、Excel、CSV等多种格式导出。JasperReports 5.5.1是这个库的一个稳定版本,它提供了丰富的API和...
Struts2作为MVC(模型-视图-控制器)架构的一部分,主要用于构建动态、交互式的Web应用程序,而JasperReports则是一个强大的报告生成工具,可以设计并导出各种格式的报表,如PDF、HTML、Excel等。 **Struts2框架** ...