jasperreport中可以使用List作为数据源,使用格式如下.
List list=this.customerDao.getAllCustomer(); //得到所有客户
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(list);
JasperPrint jasperPrint = JasperFillManager.fillReport(
reportFilePath, parameters, ds);
得填充数据后,即可输出显示到PDF,Excel,Html
到PDF:
public byte[] generatePDF(String begCustNo, String endCustNo,
String reportTitle, String reportFilePath) throws DemoException {
// TODO Auto-generated method stub
//begCustNo,endCustNo分别为查询传入的开始编号,结束编号.
jdbcCustomerDao = new JdbcCustomerDao();
Map parameters = new HashMap();
parameters.put("ReportTitle", reportTitle);//报表标题
List list = jdbcCustomerDao.getAllCustomer(begCustNo, endCustNo);
try {
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(list);
JasperPrint jasperPrint = JasperFillManager.fillReport(
reportFilePath, parameters, ds); return JasperExportManager.exportReportToPdf(jasperPrint);
} catch (JRException e) {
throw new DemoException("Report Export Failed.");
}
}
到Html:
public byte[] generateHtml(String begCustNo, String endCustNo,
String reportTitle, String reportFilePath) throws DemoException {
jdbcCustomerDao = new JdbcCustomerDao();
Map parameters = new HashMap();
parameters.put("ReportTitle", reportTitle);
List list = jdbcCustomerDao.getAllCustomer(begCustNo, endCustNo);
System.out.println("list size is :" + list.size());
JRHtmlExporter exporter = new JRHtmlExporter();
ByteArrayOutputStream oStream = new ByteArrayOutputStream();
try {
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(list);
JasperPrint jasperPrint = JasperFillManager.fillReport(
reportFilePath, parameters, ds);
exporter.setParameter(
JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,
Boolean.FALSE);
exporter
.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter
.setParameter(JRExporterParameter.CHARACTER_ENCODING, "GBK");
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, oStream);
exporter.exportReport();
byte[] bytes = oStream.toByteArray();
return bytes;
} catch (JRException e) {
throw new DemoException("Report Export Failed.");
}
}
到Excel:
public byte[] generateExcel(String begCustNo, String endCustNo,
String reportTitle, String reportFilePath) throws DemoException {
jdbcCustomerDao = new JdbcCustomerDao();
Map parameters = new HashMap();
parameters.put("ReportTitle", reportTitle);
List list = jdbcCustomerDao.getAllCustomer(begCustNo, endCustNo);
System.out.println("list size is :" + list.size());
JRXlsExporter exporter = new JRXlsExporter(); // Excel
ByteArrayOutputStream oStream = new ByteArrayOutputStream();
try {
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(list);
JasperPrint jasperPrint = JasperFillManager.fillReport(
reportFilePath, parameters, ds);
exporter
.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, oStream);
exporter.setParameter(
JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,
Boolean.TRUE);
exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,
Boolean.FALSE);
exporter.setParameter(
JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,
Boolean.FALSE);
exporter.exportReport();
byte[] bytes = oStream.toByteArray();
return bytes;
} catch (JRException e) {
throw new DemoException("Report Export Failed.");
}
}
jsp调用方法:
<%
String filePath=getServletContext().getRealPath("/")+"report.jasper";
CustomerServiceImpl custs=new CustomerServiceImpl();
byte[] bytes=null;
String begNo=request.getParameter("beginCustNo");
String endNo=request.getParameter("endCustNo");
String type=request.getParameter("type");
if(type.equals("Pdf")){
bytes= custs.generatePDF(begNo,endNo,"客户资料明细表",filePath);
}else if(type.equals("Excel")){
bytes=custs.generateExcel(begNo,endNo,"客户资料明细表",filePath);
}else
bytes=custs.generateHtml(begNo,endNo,"客户资料明细表",filePath);
if(bytes!=null){
if(type.equals("Pdf")){
response.setContentType("application/pdf");
}else if(type.equals("Excel")){
response.setContentType("application/vnd.ms-excel");
}else
response.setContentType("text/html");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes,0,bytes.length);
ouputStream.flush();
ouputStream.close();
}else
{
out.println("error");
}
%>
相关推荐
6. **生成和部署**:将设计好的报表保存为 .jrxml 文件,使用 JasperReports 库在 Java 应用中生成报表,并支持多种输出格式(如 PDF、Excel 等)。 #### 4. 总结 通过以上步骤,我们可以有效地利用 iReport 和 ...
JasperReport是一个开源的报表引擎,它可以生成PDF、HTML、XLS、CSV等多种格式的报表,而iReport则是一个基于JasperReport的报表设计工具,提供了一个可视化的界面,使得非程序员也能设计出美观的报表模板。...
JasperReports是一款开源的报表工具,主要用于创建复杂、美观的报表,并能够从各种数据源(如:数据库)获取数据,支持多种格式输出,包括PDF、HTML、Excel等。 #### 二、Java集成JasperReports 在Java开发环境中...
JasperReport是一款强大的开源报告生成工具,它允许开发者创建复杂的报表设计,并以多种格式如PDF、HTML、Excel等输出。当我们需要在JasperReport中使用子报表时,JavaBean就成为一种重要的数据绑定源,帮助我们组织...
而JasperReport则是一个开源的报告生成库,能够生成PDF、Excel、HTML等多种格式的报表。在这个主题中,我们将深入探讨如何在Struts2中集成JasperReport来导出Excel。 首先,我们需要理解Struts2的工作原理。Struts2...
4. 使用 JasperFillManager.fillReport() 方法将模板和数据源结合,生成填充后的报表。 5. 最后,通过 JasperExportManager.exportReportToXXX() 方法将填充后的报表导出为指定格式。 **4. 导出报表** ...
在Spring MVC Web应用程序中集成Jasper报表工具是一个常见的...在整个过程中,关键在于理解报表数据源的构建、报表的填充和渲染,以及报表模板的设计。通过实践和调试,可以逐步完善报表功能,提升Web应用的用户体验。
4. **生成报表**:在Action中,我们需要加载报表模板,设置数据源(通常是Action中的JavaBean集合),然后使用JasperReport API生成报表。这通常涉及以下步骤: ```java // 在ReportAction的execute方法中 Map ...
本文将深入探讨在WebWork环境下,如何使用JasperReport的子报告(subreport)功能进行套打,并以javabean作为数据源。 首先,我们需要了解什么是JasperReport的子报告。在JasperReport中,子报告是一个独立的报表...
描述中提到的“两种数据方式:数据库,list”表明JasperReports可以从数据库获取数据,也可以直接使用Java集合(如List)作为数据源。这种方式的灵活性使得报表可以适应各种数据环境。 总的来说,"jasper+ireport+...
2. **报表数据源(DataSource)**: 数据源可以是数据库连接、XML文件、Java对象集合等,用于填充报表中的数据。 3. **字段(Field)**: 报表字段对应数据源中的列或者属性,用于展示数据。 4. **变量(Variable)*...
接着是《jasperreport生成html,Excel,PDF报表,数据源使用List - allen - BlogJava.mht》这篇文章,它会介绍如何利用jasperreports生成多种格式的报表,并且将数据源设置为 Java List 类型。在实际开发中,数据源...
它允许用户通过简单的XML或者iReport设计工具创建复杂的报表,支持多种数据源,包括数据库、CSV文件、XML数据等,并能导出多种格式如PDF、HTML、Excel等。 **1. JasperReport的基本概念** - **报表模板(Report ...
4. **填充报表**: 使用`JasperFillManager.fillReport()`方法将报表模板与数据源结合,生成JasperPrint对象。 5. **展示或导出报表**: `JasperExportManager`类提供了多种导出选项,如PDF、Excel、HTML等。使用`...
在本教程中,我们将学习如何使用ireport和javabean作为数据源来创建PDF报表,并通过list组件处理子报表的问题,以展示多实体数据。 首先,理解ireport的基础知识是至关重要的。ireport提供了一个图形化的用户界面,...
JasperReport则是一个开源的报表生成工具,可以设计并导出多种格式的报表,如PDF、HTML、Excel等。在Spring MVC中集成JasperReport,能够方便地在Web应用中展示复杂的数据报表,同时解决中文显示和国际化的问题,...
2. **JasperReport 库**:iReport 是基于 JasperReport 库的,该库提供了生成报表的功能,支持多种输出格式,如 PDF、HTML、Excel 等。在 Java 项目中,我们需要引入 JasperReport 的相关依赖库(jars)。 3. **...
5. **生成报表**:在Controller的方法中,使用JasperFillManager填充报表模板,传入数据源(如List、Map或自定义对象)。然后,通过JasperExportManager将报表导出为PDF或其他格式。 6. **返回响应**:最后,将生成...
通过这样的集成,你可以轻松地在Spring Boot应用中实现动态生成PDF报表的功能,无论是用于内部业务分析还是对外的客户报告。如果你在项目运行过程中遇到问题,可以参考Spring Boot和JasperReport的官方文档,或者如...