jasperreports+ireport入门小例子

本文介绍如何使用iReport工具设计报表模板,并通过JSP页面将报表数据导出为Excel文件。内容包括iReport的安装、报表模板的创建步骤及JSP代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一。安装ireport,到iReport的官方网站:http://ireport.sourceforge.net/去下载。
二。安装完后制作report模板文件:
   1.新建一个文件:档案-->开启新档
   2.配置数据源:data-->连接资源来源-->new-->DataBase JDBC connection,输入名称,选择驱动,填写url.
   3.插入数据,选择data-->报表查询,在这里写要查询的sql,写好后会在field里自动生成查后的列;
    4.拖动field到detail里。这样就制作完成了。
    5.建立--->编译会在ireport的安装目录下生成.jasper结尾的文件。这就是我们需要的模板文件。
   很简单的一个报表例子。
三。写jsp文件:
   1。导入需要的降包:itext-1.3.1.jar,iTextAsian.jar,jasperreports-1.0.1.jar,poi-2.0-final-20040126.jar,classes12.jar。注意:不要是classes12.zip,我导入classes12.zip就是报找不到OracleDriver错误。
   2.写jsp文件:

 <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>

 

<%@ page import="java.sql.*"%>   

<%@ page import="java.io.*"%>   

<%@ page import="net.sf.jasperreports.engine.JasperFillManager"%>   

<%@ page import="net.sf.jasperreports.engine.JasperPrint"%>   

<%@ page import="net.sf.jasperreports.engine.JRException"%>   

<%@ page import="net.sf.jasperreports.engine.JRExporterParameter"%>   

<%@ page import="net.sf.jasperreports.engine.export.JRXlsExporterParameter"%>   

<%@ page import="net.sf.jasperreports.engine.export.JRXlsExporter"%>   

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">   

 

  1. <html>        
  1. <body>               
  1. <%                String Name = "aa";//初始化变量                
  1. Class.forName("oracle.jdbc.driver.OracleDriver");                
  1. Connection conn= DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","lshh","lshh");                //装载jasper文件application                
  1. File exe_rpt = new File(application.getRealPath("/test.jasper"));               
  1.  //rowid就是iReport的变量$P{rowid}的名称               
  1.  Map parameters = new HashMap();                
  1. parameters.put("Name", Name);               
  1.  try {                    
  1. // fill                    
  1. JasperPrint jasperPrint = JasperFillManager.fillReport(exe_rpt                    .getPath(), parameters, conn);                    // excel输出                    
  1. ByteArrayOutputStream oStream = new ByteArrayOutputStream();                    JRXlsExporter exporter = new JRXlsExporter();                    
  1. exporter.setParameter(JRExporterParameter.JASPER_PRINT,                    jasperPrint);                    exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,                    oStream);                    exporter.setParameter(                            JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,                            Boolean.TRUE);
  1.  // 删除记录最下面的空行                    
  1. exporter.setParameter(                    JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,                    Boolean.FALSE);// 删除多余的ColumnHeader                    
  1. exporter.setParameter(                    JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,                    Boolean.FALSE);// 显示边框                    
  1. exporter.exportReport();                      
  1.  byte[] bytes = oStream.toByteArray();                       
  1. if (bytes != null && bytes.length > 0) {                        
  1. response.reset();                        
  1. response.setContentType("application/vnd.ms-excel");                       
  1.  response.setContentLength(bytes.length);                       
  1.  ServletOutputStream ouputStream = response .getOutputStream();                        
  1. ouputStream.write(bytes, 0, bytes.length);                        
  1. ouputStream.flush();                        
  1. ouputStream.close();                       
  1. else {                        
  1. out.print("bytes were null!");                   
  1.  }                    
  1. conn.close();                
  1. catch (JRException ex) {                    
  1. out.print("Jasper Output Error:" + ex.getMessage());                
  1. }            
  1. %>              
  1. </body>   
  1. </html>  
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值