产生EXCEL报表的工具类
import java.io.File;
import java.sql.Connection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporterParameter;
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.export.JRXlsExporter;
import net.sf.jasperreports.engine.util.JRLoader;
import com.di.DBtools.utils.DBConnectionUtil;
public class CreateEXCELReport {
public static void getEXCELReport(String filePath,HttpServletRequest request,HttpServletResponse response) throws JRException{
DBConnectionUtil db = new DBConnectionUtil();
//取得一个数据库连接
Connection conn = db.getConnection();
//打开经ireport编译之后生成的.jasper报表模板文件
String path = request.getRealPath(filePath);
File reportFile = new File(path);
System.out.println("###########################"+reportFile);
//创建一个JasperReport对象
JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());
try{
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,null,conn);
//创建Excel报表
JRXlsExporter exporter = new JRXlsExporter();
response.reset();
response.setContentType("application/x-msdownload");
response.setHeader("Content-disposition","attachment;filename=report.xls");
exporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);
exporter.setParameter(JRHtmlExporterParameter.CHARACTER_ENCODING,"UTF-8");
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,response.getOutputStream());
// exporter.setParameter(JRHtmlExporterParameter.BETWEEN_PAGES_HTML,"<br style='page-before:always;'>");
exporter.exportReport();
//关闭数据库连接
db.closeConnection(conn);
}catch(Exception e){
}
}
}
产生HTML报表的工具类
import java.io.File;
import java.sql.Connection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporterParameter;
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;
import com.di.DBtools.utils.DBConnectionUtil;
public class CreateHTMLReport {
public static void getHTMLReport(String filePath,HttpServletRequest request,HttpServletResponse response) throws JRException{
DBConnectionUtil db = new DBConnectionUtil();
//取得一个数据库连接
Connection conn = db.getConnection();
//打开经ireport编译之后生成的.jasper报表模板文件
String path = request.getRealPath(filePath);
File reportFile = new File(path);
System.out.println("###########################"+reportFile);
//创建一个JasperReport对象
JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());
try{
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,null,conn);
//创建HTML报表
JRHtmlExporter exporter = new JRHtmlExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_WRITER,response.getWriter());
exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,Boolean.FALSE);
exporter.setParameter(JRHtmlExporterParameter.BETWEEN_PAGES_HTML,"<br style='page-before:always;'>");
exporter.exportReport();
//关闭数据库连接
db.closeConnection(conn);
}catch(Exception e){
}
}
}
产生PDF报表的工具类
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.JasperRunManager;
import net.sf.jasperreports.engine.export.JRHtmlExporter;
import net.sf.jasperreports.engine.export.JRHtmlExporterParameter;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.export.JRPdfExporterParameter;
import net.sf.jasperreports.engine.util.JRLoader;
import com.di.DBtools.utils.DBConnectionUtil;
public class CreatePDFReport {
public static void getPDFReport(String filePath,HttpServletRequest request,HttpServletResponse response) throws JRException{
DBConnectionUtil db = new DBConnectionUtil();
//取得一个数据库连接
Connection conn = db.getConnection();
//打开经ireport编译之后生成的.jasper报表模板文件
String path = request.getRealPath(filePath);
File reportFile = new File(path);
System.out.println("###########################"+reportFile);
//创建PDF报表
byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath(),null,conn);
//关闭数据库连接
db.closeConnection(conn);
//生成报表并输出
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
response.setCharacterEncoding("UTF-8");
try {
ServletOutputStream out = response.getOutputStream();
out.write(bytes,0,bytes.length);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
//创建一个JasperReport对象
// JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());
// JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,null,conn);
//生成报表并输出
// JRPdfExporter exporter = new JRPdfExporter();
// response.reset();
// response.setContentType("application/pdf");
// exporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);
//exporter.setParameter(JRExporterParameter.OUTPUT_WRITER,response.getWriter());
// exporter.setParameter(JRExporterParameter.INPUT_URL, request.getRealPath(""));
// exporter.setParameter(JRPdfExporterParameter.IS_USING_IMAGES_TO_ALIGN,Boolean.FALSE);
// exporter.setParameter(JRPdfExporterParameter.BETWEEN_PAGES_HTML,"<br style='page-before:always;'>");
// exporter.exportReport();
}
}
或者
import java.io.File;
import java.sql.Connection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporterParameter;
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.export.JRPdfExporter;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import net.sf.jasperreports.engine.util.JRLoader;
import com.di.DBtools.utils.DBConnectionUtil;
public class NewCreatePDFReport {
public static void getPDFReport(String filePath,HttpServletRequest request,HttpServletResponse response) throws JRException{
DBConnectionUtil db = new DBConnectionUtil();
//取得一个数据库连接
Connection conn = db.getConnection();
//打开经ireport编译之后生成的.jasper报表模板文件
String path = request.getRealPath(filePath);
File reportFile = new File(path);
System.out.println("###########################"+reportFile);
//创建一个JasperReport对象
JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());
try{
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,null,conn);
//创建Pdf报表
JRPdfExporter exporter = new JRPdfExporter();
response.reset();
response.setContentType("application/x-msdownload");
response.setHeader("Content-disposition","attachment;filename=report.pdf");
exporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);
exporter.setParameter(JRHtmlExporterParameter.CHARACTER_ENCODING,"UTF-8");
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,response.getOutputStream());
// exporter.setParameter(JRHtmlExporterParameter.BETWEEN_PAGES_HTML,"<br style='page-before:always;'>");
exporter.exportReport();
//关闭数据库连接
db.closeConnection(conn);
}catch(Exception e){
}
}
}
例子:
// CreateHTMLReport.getHTMLReport("ireport/report.jasper", request, response);
//CreatePDFReport.getPDFReport("ireport/report.jasper", request, response);
// NewCreatePDFReport.getPDFReport("ireport/report.jasper", request, response);
//CreateEXCELReport.getEXCELReport("ireport/report.jasper", request, response);