`
happy100583
  • 浏览: 124130 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

JasperReport+ireport实现报表导出功能

阅读更多

ireport  + JasperReport + webwork + ibatis 实现pdf,html,excle报表导出功能

 

首先利用ireport报表设计工具,生成count.jxml文件,然后编译成.jasper文件,放入项目中

action:

 

public String generate() throws Exception {
  

  String type = ServletActionContext.getRequest().getParameter("type");
  String roomid = ServletActionContext.getRequest().getParameter("id");
  String roomname = ServletActionContext.getRequest().getParameter("name"); 
    
  System.out.println(roomname);
  
  String realPath = ServletActionContext.getServletContext().getRealPath(
    "/");
  File file = new File(realPath + "/report/Court.jasper");

 // String reportFilePath = "D:\\jar\\Court.jasper";
  String reportFilePath = file.getPath();
  
  GeneaterService geneater = new GeneaterService();
  System.out.println(reportFilePath);
  byte[] bytes = null;
  
  if (type.equals("PDF")) {
   bytes = geneater.generatePDF(roomid,roomname,reportFilePath);
  } else if (type.equals("Excel")) {
   bytes = geneater.generateExcel(roomid,roomname,reportFilePath);
  } else
   bytes = geneater.generateHtml(roomid,roomname,reportFilePath);

  HttpServletResponse response = ServletActionContext.getResponse();
  ServletOutputStream ouputStream = response.getOutputStream();

  if (bytes != null && bytes.length > 0) {
   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);
   try {
    ouputStream.write(bytes, 0, bytes.length);
    ouputStream.flush();
   } finally {
    if (ouputStream != null) {
     try {
      ouputStream.close();
     } catch (IOException ex) {
     }
    }
   }
  }

  return null;   //如果不返回NULL的话,可能会报异常
 }

 

生成报表方法:

 

 

/**
  * 导出成PDf格式报表
  * @param roomid
  * @param roomname
  * @param reportFilePath
  * @return
  */
 public byte[] generatePDF(String roomid,String roomname,String reportFilePath) {
  try {
   JasperReport jasperReport = (JasperReport) JRLoader
     .loadObject(reportFilePath);
   JasperPrint jasperPrint = JasperFillManager.fillReport(
     jasperReport, new HashMap(), new CourtBeanDataSource(roomid,roomname));

   return JasperExportManager.exportReportToPdf(jasperPrint);
  } catch (JRException e) {
   e.printStackTrace();
  }

  return null;
 }

 /**
  * 导出成HTML格式报表
  * @param roomid
  * @param roomname
  * @param reportFilePath
  * @return
  */
 public byte[] generateHtml(String roomid,String roomname,String reportFilePath) {

  JRHtmlExporter exporter = new JRHtmlExporter();
  ByteArrayOutputStream oStream = new ByteArrayOutputStream();
  try {
   JasperReport jasperReport = (JasperReport) JRLoader
     .loadObject(reportFilePath);
   JasperPrint jasperPrint = JasperFillManager.fillReport(
     jasperReport, new HashMap(), new CourtBeanDataSource(roomid,roomname));
   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) {
   e.printStackTrace();
  }
  return null;
 }

 /**
  * 导出成excel格式报表
  * @param roomid
  * @param roomname
  * @param reportFilePath
  * @return
  */
 public byte[] generateExcel(String roomid,String roomname,String reportFilePath) {
  JRXlsExporter exporter = new JRXlsExporter(); // Excel
  ByteArrayOutputStream oStream = new ByteArrayOutputStream();
  try {
   JasperReport jasperReport = (JasperReport) JRLoader
     .loadObject(reportFilePath);
   JasperPrint jasperPrint = JasperFillManager.fillReport(
     jasperReport, new HashMap(), new CourtBeanDataSource(roomid,roomname));

   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) {
   e.printStackTrace();
  }  
  return null;
 }

 

 

list数据源:

 

public class CourtBeanDataSource implements JRDataSource {
 
  private int index = -1;
//  List<Courtcount> list = Tongji.getCourtcount();
  List<Courtcount> list = null;
 
  @SuppressWarnings("unchecked")
 public CourtBeanDataSource(String roomid,String roomname) {
  list =  Tongji.getCourtcountByID(roomid,roomname);
  }
 

 public Object getFieldValue(JRField field) throws JRException {
  Object value = null;
  String fieldName = field.getName();
  Courtcount court = list.get(index);
  int[] counts = court.getCount();  
  if("courtName".equals(fieldName)) {
   value = court.getCourtName();
  }else if("year".equals(fieldName)) {
   value = court.getYear();
  }
  else
  for(int i = 1; i <= 12; i++) {
   if(("count"+i).equals(fieldName)) {
    value = counts[i-1];
   }
  }
  
  return value;
 }

 public boolean next() throws JRException {
  index ++;
  return (index < list.size());
 }

}

 

 

分享到:
评论

相关推荐

    利用Jasperreport+IReport进行报表开发

    3. 报表导出:使用 JasperExportManager 将填充后的报表导出为所需格式,如 PDF、HTML 或 Excel。 通过理解和学习这些步骤,你可以掌握JasperReport和IReport的基本使用,从而在实际项目中高效地生成各类报表。

    JasperReport+iReport报表开发手册.pdf

    3. **报表导出**:将生成的报表导出为所需的格式,例如PDF、Excel、HTML等。 #### 三、JasperReport核心特性 1. **数据源支持**:JasperReport支持多种数据源,包括但不限于数据库连接、Java Bean、XML文件、Java...

    JasperReport+iReport报表开发手册.zip

    JasperReports 是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换 ...它有一个相关的开源工程--IReport,这是一个图形化的辅 助工具,主要用于数据报表设计。...设计、数据填充与数据报表导出。

    使用JasperReport+iReport进行WEB开发

    JasperReport和iReport的结合使用,为开发者提供了一种高效、灵活的方式来设计和生成复杂的报表。本文将深入探讨如何利用这两个工具进行WEB开发。 JasperReport是一款开源的Java报表库,它支持多种数据源,如数据库...

    Jasperreport+ireport 实践操作及web应用

    在JasperReport 2.0.2和iReport 2.0.2版本中,我们可以实现多种功能,包括字段、变量、参数的管理,图像(矢量图和位图)的使用,超链接和锚点的创建,数据源的配置,国际化支持,脚本编写,子报表以及图表的展示,...

    JasperReport+iReport报表工具详细开发手册

    通过以上内容的总结,我们可以了解到JasperReport+iReport报表工具的详细开发手册主要涉及了报表工具的安装配置、报表设计与编辑、数据源配置、SQL语句使用、报表元素应用、Java编程接口使用以及报表在Web环境中的...

    jasperreport+ireport开发java报表入门级教程(完整版).

    ### jasperreport+ireport开发java报表入门级教程(完整版) #### 一、简介:什么是iReport? iReport系统是一种在线系统,用于报告工作场所安全与健康(WSHA)事件报告条例下的事故、危险事件及职业病。雇主、占用...

    JasperReport+iReport 报表工具详细开发手册

    在JasperReport中,可以通过定义变量、参数和字段来实现更复杂的功能。变量用于计算累积值或进行中间计算;参数则是在运行时传递给报表的信息,比如查询条件、日期范围等;字段是从数据源获取的具体数据值。 **4.3....

    JasperReport+iReport报表工具

    JSP(JavaServer Pages)是一种用于生成动态网页内容的技术,JasperReport可以将报表导出为JSP页面,便于在Web环境中展示。Java是一种广泛使用的编程语言,JasperReport和iReport都是用Java编写,因此运行这些工具...

    JasperReport+iReport报表学习资料

    - **报表导出**:学会如何将报表导出为不同的格式,例如PDF和Excel等。 - **PDF格式导出**:导出为PDF格式,便于打印和存档。 - **EXCEL格式导出**:导出为Excel格式,方便进一步的数据处理和分析。 - **调用JAVA...

    JasperReport + IReport 开发文档

    7. **jasperreport+ireport开发java报表入门级教程.pdf**:专门针对Java开发者的入门教程,详细解释如何使用JasperReport和IReport构建报表。 8. **jasperReport.pdf**:可能是一个JasperReport的官方文档或者第三方...

    struts2+Ireport+Jasperreport实现报表导出

    项目中包含的"Highcharts报表导出功能所需jar包"可能指的是Highcharts Export Server,这是一个用于将Highcharts图表导出为图像或PDF的服务器端组件。它允许用户将Web页面上的交互式图表导出为静态格式,以便于打印...

    JasperReport+iReport报表工具详细开发手册.pdf

    - PDF是一种常用的文档格式,使用JasperReport可以很容易地将报表导出为PDF格式。 - **4.4.2 EXCEL格式导出** - Excel是另一种常见的报表格式,通过简单的配置即可将报表导出为Excel文件。 ##### 4.5 调用JAVA...

    JasperReport+iReport整合的Web报表开发

    ### JasperReport+iReport整合的Web报表开发 #### 1. JasperReport简介 JasperReport是一款功能强大且灵活的报表生成工具,它支持多种输出格式,包括PDF、HTML、XML、Excel(通过POI或JExcelAPI实现)和Rtf(通过...

    jasperreport ireport开发java报表入门级教程(完整版).rar

    2. **JasperExportManager**:负责报表的导出,可以将报表导出为PDF、HTML、Excel等多种格式。 3. **JasperPrint**:报表内容的内部表示,包含了所有的数据和样式信息。 【集成到Java应用】 在Java应用中集成...

Global site tag (gtag.js) - Google Analytics