注意:編寫此項目時,請先手動編寫
**.
jrxml
或者用IReport生成**.jrxml或**.jasper
注:java導出報表與web項目顯示報表方法其實是相同的,只不過有一句代碼不同,如下
-
html.setParameter(JRHtmlExporterParameter.OUTPUT_FILE_NAME,
"C:/Users/Administrator/Desktop/ireport/report1.html");
//生成文件
-
//html.setParameter(JRHtmlExporterParameter.OUTPUT_WRITER,response.getWriter()); // web頁面顯示
maven依賴
-
<!-- iReport JasperReports -->
-
<dependency>
-
<groupId>net.sf.jasperreports</groupId>
-
<artifactId>jasperreports</artifactId>
-
<version>
5.6.0</version>
-
</dependency>
-
<dependency>
-
<groupId>org.codehaus.groovy</groupId>
-
<artifactId>groovy-all</artifactId>
-
<version>
2.2.2</version>
-
</dependency>
通過java代碼生成各種格式報表文件
JDBC文件
-
package com.hlzt.test;
-
-
import java.sql.Connection;
-
import java.sql.DriverManager;
-
import java.sql.ResultSet;
-
import java.sql.Statement;
-
-
public
class JDBC {
-
public
static String driver=
"com.mysql.jdbc.Driver";
-
public
static String url=
"jdbc:mysql://localhost:3306/senyuan1";
-
public
static String user=
"root";
-
public
static String pwd=
"123456";
-
public
static Connection conn=getConnection();
-
public
static Statement statement=getStatement();
-
-
private static Connection getConnection(){
-
if(conn==
null){
-
try{
-
Class.forName(driver);
-
conn=DriverManager.getConnection(url,user,pwd);
-
}
catch(Exception e){
-
e.printStackTrace();
-
}
-
}
-
return conn;
-
}
-
private static Statement getStatement(){
-
if(statement==
null){
-
try{
-
statement=conn.createStatement();
-
}
catch(Exception e){
-
e.printStackTrace();
-
}
-
}
-
return statement;
-
}
-
public static ResultSet getResultSet(String sql){
-
ResultSet rs=
null;
-
try{
-
rs=statement.executeQuery(sql);
-
}
catch(Exception e){
-
e.printStackTrace();
-
}
-
return rs;
-
}
-
public static void closeAll(ResultSet rs,Statement st,Connection cn){
-
try{
-
if(rs!=
null){
-
rs.close();
-
}
-
if(st!=
null){
-
st.close();
-
}
-
if(cn!=
null){
-
cn.close();
-
}
-
}
catch(Exception e){
-
e.printStackTrace();
-
}
-
}
-
}
-
package com.hlzt.test;
-
import java.io.File;
-
import java.io.IOException;
-
import java.io.InputStream;
-
import java.util.HashMap;
-
import java.util.Map;
-
-
import javax.servlet.ServletContext;
-
import javax.servlet.ServletException;
-
import javax.servlet.http.HttpServlet;
-
import javax.servlet.http.HttpServletRequest;
-
import javax.servlet.http.HttpServletResponse;
-
import net.sf.jasperreports.engine.JRExporterParameter;
-
import net.sf.jasperreports.engine.JasperCompileManager;
-
import net.sf.jasperreports.engine.JasperFillManager;
-
import net.sf.jasperreports.engine.JasperPrint;
-
import net.sf.jasperreports.engine.JasperReport;
-
import net.sf.jasperreports.engine.export.JRHtmlExporter;
-
import net.sf.jasperreports.engine.export.JRHtmlExporterParameter;
-
import net.sf.jasperreports.engine.util.JRLoader;
-
@SuppressWarnings(
"deprecation")
-
public
class TestReport {
-
-
public static void main(String[] args) {
-
service();
-
}
-
//protected void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {\
-
protected static void service(){
-
try{
-
//ServletContext context = this.getServletConfig().getServletContext();
-
-
//JasperCompileManager 編譯管理器
-
//JasperFillManager 填充管理器
-
//JRXmlLoader xml加載器
-
//JasperPrintManager 打印管理器
-
//JasperExportManager 導出管理器
-
-
//JasperCompileManager.compileReportToFile(context.getRealPath("/reports/DbReport.jrxml"));//編譯jrxml文件,生成jasper文件
-
-
Map map=
new HashMap();
//參數map
-
map.put(
"userName",
"admin");
-
-
//生成jrprint文件
-
//JasperFillManager.fillReportToFile(context.getRealPath("/reports/DbReport.jasper"), map, JDBC.conn);
-
-
-
File jasperFile=
new File(
"C:/Users/Administrator/Desktop/ireport/report1.jasper");
-
JasperReport jasperReport =(JasperReport)JRLoader.loadObject(jasperFile);
-
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map,JDBC.conn);
-
File file=
new File(
"C:/Users/Administrator/Desktop/ireport/report1.html");
-
//生成html
-
JRHtmlExporter html =
new JRHtmlExporter();
-
html.setParameter(JRHtmlExporterParameter.JASPER_PRINT, jasperPrint);
-
html.setParameter(JRHtmlExporterParameter.OUTPUT_FILE_NAME,
"C:/Users/Administrator/Desktop/ireport/report1.html");
//生成文件
-
//html.setParameter(JRHtmlExporterParameter.OUTPUT_WRITER,response.getWriter()); // web頁面顯示
-
html.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,Boolean.FALSE);
-
html.setParameter(JRExporterParameter.CHARACTER_ENCODING,
"utf-8");
-
html.exportReport();
-
//生成excel
-
/*
-
JRXlsExporter xls=new JRXlsExporter();
-
*/
-
//生成pdf
-
/*
-
JRPdfExporter pdf = new JRPdfExporter();
-
*/
-
}
catch(Exception e){
-
e.printStackTrace();
-
}
-
}
-
}
與javaweb整合
本文用的是JasperReport最新版本6.0
JasperReport官網:community.jaspersoft.com
web開發建議下載JasperReports library --> jasperreports-xxx-project 里面包含demo以及api
項目結構:
jar包:新手可以把下載下來的所有jar包都放進去,熟練之后可以根據自己所需加入相關jar包
WebRoot下:新建reports文件夾,用來存放jrxml、jasper文件;build.xml(放入進去之后會出現螞蟻圖標);
jrxml文件代碼,此代碼是xml格式文件,可以自己手寫,也可以安裝 iReport設計編譯成jasper文件,為了入門下面純手寫
DbReport.jrxml:
后台代碼:TestServlet.java
JDBC:
執行效果:html數據