jasperreports 结合ireport生成pdf,word(jsp调用ireport)

本文介绍如何在JSP页面中集成JasperReports来生成报告,并提供了使用不同数据源(如JavaBean和数据库连接)的示例代码。

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


<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ 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="zte.SQLConn"%>ger"%>
<%@ page import="net.sf.jasperreports.engine.*" %>
<%
System.out.println("----001.success jspreport");
System.out.println("----001.success jspreport");
System.out.println("----001.success jspreport");
//String Name = "1";
SQLConn sqlConn = new SQLConn();
try {

Connection conn= sqlConn.getConnection();
File exe_rpt = new File(application.getRealPath("jspreport/test.jasper"));
Map parameters = new HashMap();
// parameters.put("Name", Name);
if(exe_rpt.exists()){
System.out.println("yes,file");
}else{
System.out.println("no,file");
}
System.out.println("----002.success jspreport");
System.out.println("----002.success jspreport");
System.out.println("----002.success jspreport");
System.out.println(exe_rpt.getPath());
try {


JasperPrint jasperPrint = JasperFillManager.fillReport(new FileInputStream(exe_rpt),parameters,conn);
JasperPrintManager.printReport(jasperPrint, false);

response.setContentType("application/msword");
conn.close();
// JasperPrint jasperPrint = JasperFillManager.fillReport(exe_rpt.getPath(),parameters,conn);

//byte[] bytes = JasperRunManager.runReportToPdf(exe_rpt.getPath(),parameters,conn);
// response.setContentType("application/pdf");
//response.setContentLength(bytes.length);
//ServletOutputStream ouputStream = response.getOutputStream();
//ouputStream.write(bytes,0,bytes.length);
//释放在jsp中使用的对象,会调用response.getWriter(),因为这个方法是和response.getOutputStream()相冲突的!
//使用完输出流以后
out.clear();
out = pageContext.pushBody();

// ouputStream.flush();
// ouputStream.close();
conn.close();
}catch(JRException ex){
out.print("Jasper Output Error:"+ex.getMessage());
}
} catch (SQLException e1) {
e1.printStackTrace();
}
%>


-------------------------调用javaBean做数据源

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@page import="java.sql.*"%>
<%@page import="net.sf.jasperreports.engine.JasperFillManager"%>
<%@page import="net.sf.jasperreports.engine.*"%>
<%@page import="net.sf.jasperreports.engine.util.*"%>
<%@page import="net.sf.jasperreports.engine.export.*"%>
<%@page import="net.sf.jasperreports.j2ee.servlets.*"%>
<%@page import="java.util.*"%>
<%@page import="java.util.List"%>
<%@page import="java.io.*"%>
<%@page import="net.sf.jasperreports.engine.JasperPrintManager"%>
<%@page import="net.sf.jasperreports.view.*"%>
<%@page import="java.sql.*, javax.sql.DataSource, javax.naming.InitialContext"%>
<%@page import="java.lang.*"%>

<%@ page import="net.sf.jasperreports.engine.JasperFillManager" %>
<%@ page import="net.sf.jasperreports.engine.JasperPrint"%>
<%@ page import="net.sf.jasperreports.engine.JasperRunManager"%>
<%@ page import="net.sf.jasperreports.engine.JRExporterParameter"%>
<%@ page import="net.sf.jasperreports.engine.JRException"%>
<%@ page import="net.sf.jasperreports.engine.export.JRXlsExporterParameter"%>
<%@ page import="net.sf.jasperreports.engine.export.JRXlsExporter"%>
<%@page import ="net.sf.jasperreports.engine.JRExporter"%>
<%@ page import="net.sf.jasperreports.engine.export.JRRtfExporter"%>
<%@page import ="com.lowagie.text.*" %>
<%@ page import="zte.SQLConn"%><%@ page import="zte.testVo"%>
<%@ page import="net.sf.jasperreports.engine.JasperRunManager"%>
<%@ page import="net.sf.jasperreports.engine.*" %>
<%@ page import="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"%>


<%
// InitialContext ctx = new InitialContext();
// DataSource ds = (DataSource) ctx.lookup("java:/MSSQLDS");
// Connection conn = ds.getConnection();

SQLConn sqlConn = new SQLConn();
try {
Connection conn= sqlConn.getConnection1();
//String accNo ="200672395001";

//String accNo = request.getParameter("accNo");
File reportFile1 = new File(application.getRealPath("jspreport/javaBean.jasper"));
if (!reportFile1.exists())
throw new JRRuntimeException("Fidsfsfd. The report design must be compiled first");
JasperReport jasperReport1 = (JasperReport) JRLoader.loadObject(reportFile1.getPath());
Map parameters = new HashMap();
parameters.put("id", 1);
///`--------------------
List<testVo> data = new ArrayList<testVo>();
testVo TestVo = new testVo();
// TestVo.setId1(100);
// TestVo.setName1("肥肥");
// TestVo.setSex1("10");
// TestVo.setAge1("202");

List<testVo> list = new ArrayList<testVo>();
try {
Statement stmt = conn.createStatement();
ResultSet rslt = stmt.executeQuery("select * from PARTNER where partner_id = (select distinct d.supplier_id from PROCUREMENT_ITEM a ,BIDDING b ,AUCTION c,MATERIAL_PRICE d where a.procurement_item_id = b.procurement_item_id and b.bidding_id =c.bidding_id and c.auction_id = d.auction_id)");
while (rslt.next()) {
testVo obj = new testVo();
obj.setContactMan(rslt.getString("CONTACT_MAN"));
obj.setContactTel(rslt.getString("contact_Tel"));
obj.setBank(rslt.getString("bank"));
obj.setAccount(rslt.getString("account"));
list.add(obj);
}

for(int i=0;i<list.size();i++){
TestVo.setContactMan(list.get(i).getContactMan());
TestVo.setContactTel(list.get(i).getContactTel());
TestVo.setBank(list.get(i).getBank());
TestVo.setAccount(list.get(i).getAccount());
}

} catch (SQLException e) {
e.printStackTrace();
}

data.add(TestVo);
JRDataSource dataSource = new JRBeanCollectionDataSource(data);
//--------------

JasperPrint jasperPrint1 =
JasperFillManager.fillReport(
jasperReport1,
null,
dataSource
);

//response.setContentType("application/ms_word");
JRExporter exporter = null;
exporter = new JRRtfExporter();
List reportlist = (List)new java.util.ArrayList();
reportlist.add(jasperPrint1);
// System.out.println(reportlist.size() + "list");
byte[] bytes;
ByteArrayOutputStream baos = new ByteArrayOutputStream();

exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, reportlist);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, baos);

//qijia
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint1);
//exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);


exporter.exportReport();
// exporter.exportReportToStream();
bytes = baos.toByteArray();
// System.out.println(bytes+"bytes");
if (bytes != null && bytes.length > 0) {
try {
//response.reset();
response.setContentType("application/ms_word");
response.setHeader("Content-disposition",
"attachment; filename=yourReport.doc");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
//ouputStream.flush();
out.clear();
out = pageContext.pushBody();

ouputStream.close();
// response.reset();

}
catch (Exception ex) {
ex.printStackTrace();
}
finally {
conn.close();
}
}

} catch (SQLException e1) {
e1.printStackTrace();
}
%>

------------------------connction做数据源
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@page import="java.sql.*"%>
<%@page import="net.sf.jasperreports.engine.JasperFillManager"%>
<%@page import="net.sf.jasperreports.engine.*"%>
<%@page import="net.sf.jasperreports.engine.util.*"%>
<%@page import="net.sf.jasperreports.engine.export.*"%>
<%@page import="net.sf.jasperreports.j2ee.servlets.*"%>
<%@page import="java.util.*"%>
<%@page import="java.util.List"%>
<%@page import="java.io.*"%>
<%@page import="net.sf.jasperreports.engine.JasperPrintManager"%>
<%@page import="net.sf.jasperreports.view.*"%>
<%@page import="java.sql.*, javax.sql.DataSource, javax.naming.InitialContext"%>
<%@page import="java.lang.*"%>
<%@ page import="net.sf.jasperreports.engine.JasperPrint"%>
<%@ page import="net.sf.jasperreports.engine.JRExporterParameter"%>
<%@page import ="net.sf.jasperreports.engine.JRExporter"%>
<%@ page import="net.sf.jasperreports.engine.export.JRRtfExporter"%>
<%@page import ="com.lowagie.text.*" %>
<%@ page import="zte.SQLConn"%><%@ page import="zte.testVo"%>
<%@ page import="net.sf.jasperreports.engine.JasperRunManager"%>
<%@ page import="net.sf.jasperreports.engine.*" %>
<%@ page import="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"%>


<%
// InitialContext ctx = new InitialContext();
// DataSource ds = (DataSource) ctx.lookup("java:/MSSQLDS");
// Connection conn = ds.getConnection();

SQLConn sqlConn = new SQLConn();
try {
Connection conn= sqlConn.getConnection();
//String accNo ="200672395001";

//String accNo = request.getParameter("accNo");
File reportFile1 = new File(application.getRealPath("jspreport/conntion.jasper"));
if (!reportFile1.exists())
throw new JRRuntimeException("Fidsfsfd. The report design must be compiled first");
JasperReport jasperReport1 = (JasperReport) JRLoader.loadObject(reportFile1.getPath());
Map parameters = new HashMap();
parameters.put("id", 1);
JasperPrint jasperPrint1 =
JasperFillManager.fillReport(
jasperReport1,
parameters,
conn
);
//response.setContentType("application/ms_word");
JRExporter exporter = null;
exporter = new JRRtfExporter();
List reportlist = (List)new java.util.ArrayList();
reportlist.add(jasperPrint1);
// System.out.println(reportlist.size() + "list");
byte[] bytes;
ByteArrayOutputStream baos = new ByteArrayOutputStream();

exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, reportlist);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, baos);

//qijia
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint1);
//exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);

exporter.exportReport();
// exporter.exportReportToStream();
bytes = baos.toByteArray();
// System.out.println(bytes+"bytes");
if (bytes != null && bytes.length > 0) {
try {
//response.reset();
response.setContentType("application/ms_word");
response.setHeader("Content-disposition",
"attachment; filename=yourReport.doc");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
//ouputStream.flush();
out.clear();
out = pageContext.pushBody();

ouputStream.close();
// response.reset();
}
catch (Exception ex) {
ex.printStackTrace();
}
finally {
conn.close();
}
}
} catch (SQLException e1) {
e1.printStackTrace();
}
%>
----------------------包
commons-beanutils-1.7.jar
commons-collections-3.1.jar
iText-2.1.7.jar
iTextAsian.jar
jakarta-bcel-20050813.jar
JasperBabylon-1.0.0.jar
jasperreports-3.0.0.jar
jasperreports-extensions-1.3.1.jar
jasperreports-flash-2.0.5.jar
mysql-connector-java-3.1.11-bin.jar
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值