`
lbyzx123
  • 浏览: 476077 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

jasperreport生成html,Excel,PDF报表,数据源使用List

    博客分类:
  • J2EE
阅读更多

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");
 }
 

 

  %>

分享到:
评论

相关推荐

    原创:iReport&JasperReport开发手记(一) List报表开发与发布

    6. **生成和部署**:将设计好的报表保存为 .jrxml 文件,使用 JasperReports 库在 Java 应用中生成报表,并支持多种输出格式(如 PDF、Excel 等)。 #### 4. 总结 通过以上步骤,我们可以有效地利用 iReport 和 ...

    JasperReport+ireport实现报表导出功能

    JasperReport是一个开源的报表引擎,它可以生成PDF、HTML、XLS、CSV等多种格式的报表,而iReport则是一个基于JasperReport的报表设计工具,提供了一个可视化的界面,使得非程序员也能设计出美观的报表模板。...

    jasperreport excel报表打印

    JasperReports是一款开源的报表工具,主要用于创建复杂、美观的报表,并能够从各种数据源(如:数据库)获取数据,支持多种格式输出,包括PDF、HTML、Excel等。 #### 二、Java集成JasperReports 在Java开发环境中...

    使用JavaBean构造JasperReport子报表

    JasperReport是一款强大的开源报告生成工具,它允许开发者创建复杂的报表设计,并以多种格式如PDF、HTML、Excel等输出。当我们需要在JasperReport中使用子报表时,JavaBean就成为一种重要的数据绑定源,帮助我们组织...

    struts2利用jasperreport导出excel

    而JasperReport则是一个开源的报告生成库,能够生成PDF、Excel、HTML等多种格式的报表。在这个主题中,我们将深入探讨如何在Struts2中集成JasperReport来导出Excel。 首先,我们需要理解Struts2的工作原理。Struts2...

    jasperreport教程

    4. 使用 JasperFillManager.fillReport() 方法将模板和数据源结合,生成填充后的报表。 5. 最后,通过 JasperExportManager.exportReportToXXX() 方法将填充后的报表导出为指定格式。 **4. 导出报表** ...

    spring MVC Web应用中集成Jasper报表工具

    在Spring MVC Web应用程序中集成Jasper报表工具是一个常见的...在整个过程中,关键在于理解报表数据源的构建、报表的填充和渲染,以及报表模板的设计。通过实践和调试,可以逐步完善报表功能,提升Web应用的用户体验。

    struts2整合jasperreport

    4. **生成报表**:在Action中,我们需要加载报表模板,设置数据源(通常是Action中的JavaBean集合),然后使用JasperReport API生成报表。这通常涉及以下步骤: ```java // 在ReportAction的execute方法中 Map ...

    webwork下jasperreport的subreport使用套打

    本文将深入探讨在WebWork环境下,如何使用JasperReport的子报告(subreport)功能进行套打,并以javabean作为数据源。 首先,我们需要了解什么是JasperReport的子报告。在JasperReport中,子报告是一个独立的报表...

    jasper+ireport+jfreechart导出html.excel.word.pdf

    描述中提到的“两种数据方式:数据库,list”表明JasperReports可以从数据库获取数据,也可以直接使用Java集合(如List)作为数据源。这种方式的灵活性使得报表可以适应各种数据环境。 总的来说,"jasper+ireport+...

    Jasperreport资料

    2. **报表数据源(DataSource)**: 数据源可以是数据库连接、XML文件、Java对象集合等,用于填充报表中的数据。 3. **字段(Field)**: 报表字段对应数据源中的列或者属性,用于展示数据。 4. **变量(Variable)*...

    jasperreports 使用教程资料

    接着是《jasperreport生成html,Excel,PDF报表,数据源使用List - allen - BlogJava.mht》这篇文章,它会介绍如何利用jasperreports生成多种格式的报表,并且将数据源设置为 Java List 类型。在实际开发中,数据源...

    jasperreport帮助文档

    它允许用户通过简单的XML或者iReport设计工具创建复杂的报表,支持多种数据源,包括数据库、CSV文件、XML数据等,并能导出多种格式如PDF、HTML、Excel等。 **1. JasperReport的基本概念** - **报表模板(Report ...

    JasperReport API

    4. **填充报表**: 使用`JasperFillManager.fillReport()`方法将报表模板与数据源结合,生成JasperPrint对象。 5. **展示或导出报表**: `JasperExportManager`类提供了多种导出选项,如PDF、Excel、HTML等。使用`...

    ireport报表制作教程

    在本教程中,我们将学习如何使用ireport和javabean作为数据源来创建PDF报表,并通过list组件处理子报表的问题,以展示多实体数据。 首先,理解ireport的基础知识是至关重要的。ireport提供了一个图形化的用户界面,...

    springmvc+jasperreport解决了中文显示和国际化

    JasperReport则是一个开源的报表生成工具,可以设计并导出多种格式的报表,如PDF、HTML、Excel等。在Spring MVC中集成JasperReport,能够方便地在Web应用中展示复杂的数据报表,同时解决中文显示和国际化的问题,...

    iReport+java导出pdf/byte[]

    2. **JasperReport 库**:iReport 是基于 JasperReport 库的,该库提供了生成报表的功能,支持多种输出格式,如 PDF、HTML、Excel 等。在 Java 项目中,我们需要引入 JasperReport 的相关依赖库(jars)。 3. **...

    Spring3 MVC with Japer Report Demo

    5. **生成报表**:在Controller的方法中,使用JasperFillManager填充报表模板,传入数据源(如List、Map或自定义对象)。然后,通过JasperExportManager将报表导出为PDF或其他格式。 6. **返回响应**:最后,将生成...

    springBootPdf.rar

    通过这样的集成,你可以轻松地在Spring Boot应用中实现动态生成PDF报表的功能,无论是用于内部业务分析还是对外的客户报告。如果你在项目运行过程中遇到问题,可以参考Spring Boot和JasperReport的官方文档,或者如...

Global site tag (gtag.js) - Google Analytics