IREPORT安裝、使用
一。安裝ireport,到iReport的官方網(wǎng)站:http://ireport.sourceforge.net/去下載。二。安裝完后制作report模板文件:
1.新建一個文件:檔案-->開啟新檔
2.配置數(shù)據(jù)源:data-->連接資源來源-->new-->DataBase JDBC connection,輸入名稱,選擇驅(qū)動,填寫url.
3.插入數(shù)據(jù),選擇data-->報(bào)表查詢,在這里寫要查詢的sql,寫好后會在field里自動生成查后的列;
4.拖動field到detail里。這樣就制作完成了。
5.建立--->編譯會在ireport的安裝目錄下生成.jasper結(jié)尾的文件。這就是我們需要的模板文件。
很簡單的一個報(bào)表例子。
三。寫jsp文件: (偶用的是IREPORT300,包請?jiān)贗REPORT300中l(wèi)ib里找吧)
1。導(dǎo)入需要的降包:itext-1.3.1.jar,iTextAsian.jar,jasperreports-1.0.1.jar,poi-2.0-final-20040126.jar,classes12.jar。注意:不要是classes12.zip,我導(dǎo)入classes12.zip就是報(bào)找不到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">
- <html>
- <body>
- <%
- String Name = "aa";//初始化變量
- Class.forName("oracle.jdbc.driver.OracleDriver");
- Connection conn= DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","lshh","lshh");
- //裝載jasper文件application
- File exe_rpt = new File(application.getRealPath("/test.jasper"));
- //rowid就是iReport的變量$P{rowid}的名稱
- Map parameters = new HashMap();
- parameters.put("Name", Name);
- try {
- // fill
- JasperPrint jasperPrint = JasperFillManager.fillReport(exe_rpt
- .getPath(), parameters, conn);
- // excel輸出
- ByteArrayOutputStream oStream = new ByteArrayOutputStream();
- JRXlsExporter exporter = new JRXlsExporter();
- 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);// 刪除多余的ColumnHeader
- exporter.setParameter(
- JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,
- Boolean.FALSE);// 顯示邊框
- exporter.exportReport();
- byte[] bytes = oStream.toByteArray();
- if (bytes != null && bytes.length > 0) {
- response.reset();
- response.setContentType("application/vnd.ms-excel");
- response.setContentLength(bytes.length);
- ServletOutputStream ouputStream = response
- .getOutputStream();
- ouputStream.write(bytes, 0, bytes.length);
- ouputStream.flush();
- ouputStream.close();
- } else {
- out.print("bytes were null!");
- }
- conn.close();
- } catch (JRException ex) {
- out.print("Jasper Output Error:" + ex.getMessage());
- }
- %>
- </body>
- </html>
改為:response.setHeader("Content-disposition","inline; filename=MyExcel.pdf"); 就行了,
再強(qiáng)調(diào)一點(diǎn),首先確定一定要安裝adobe reader閱讀器啊(別說,我就因?yàn)闆]裝這個,折騰了二天,呵呵。。。)
升級處理:
需要包:iText-2.1.7.jar、iTextAsian.jar、jasperreports-5.5.0.jar、poi-3.9-20121203.jar
posted on 2012-10-25 16:40 半導(dǎo)體 閱讀(443) 評論(0) 編輯 收藏 所屬分類: 報(bào)表