由于在一個里面不能貼太多的代碼,故放置代碼在此處。
上接:http://jimmy-shine.iteye.com/blog/78678
下接:http://jimmy-shine.iteye.com/blog/123597
java 代碼
-
-
-
-
- package cn.com.reachway.framework.report.export;
-
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.sql.Connection;
- import java.util.Map;
-
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
-
- import net.sf.jasperreports.engine.JRDataSource;
- import net.sf.jasperreports.engine.JRExporterParameter;
- import net.sf.jasperreports.engine.JasperPrint;
- import net.sf.jasperreports.engine.export.JRHtmlExporter;
- import net.sf.jasperreports.engine.export.JRHtmlExporterParameter;
- import net.sf.jasperreports.j2ee.servlets.ImageServlet;
- import cn.com.reachway.framework.exception.JasperReportException;
- import cn.com.reachway.framework.report.jasperPrint.JasperPrintWithConnection;
- import cn.com.reachway.framework.report.jasperPrint.JasperPrintWithDataSource;
-
-
-
-
- public class HTMLExport {
-
-
-
-
-
-
-
-
-
-
-
- public void export(HttpServletRequest request, HttpServletResponse response, String reportFilePath, Map params,
- Connection con) throws JasperReportException {
- try {
- PrintWriter out = response.getWriter();
- try {
- response.setContentType("text/html;charset=UTF-8");
- JasperPrint jasperPrint = new JasperPrintWithConnection(reportFilePath, params, con).getJasperPrint();
-
- JRHtmlExporter exporter = new JRHtmlExporter();
- request.getSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);
- exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
- exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
- exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "./servlets/image?image=");
- exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "UTF-8");
-
- exporter.exportReport();
- } catch (Exception e) {
- e.printStackTrace();
- throw new JasperReportException("在導(dǎo)出Html格式報表時發(fā)生錯誤!");
- } finally {
- if (out != null) {
- try {
- out.close();
- } catch (Exception e) {
- }
- }
- }
- } catch (IOException ioe) {
- ioe.printStackTrace();
- throw new JasperReportException("從Response中取得PrintWriter時發(fā)生錯誤!");
- }
- }
-
-
-
-
-
-
-
-
-
-
-
- public void export(HttpServletRequest request, HttpServletResponse response, String reportFilePath, Map params,
- JRDataSource dataSource) throws JasperReportException {
- try {
- PrintWriter out = response.getWriter();
- try {
- response.setContentType("text/html;charset=UTF-8");
- JasperPrint jasperPrint = new JasperPrintWithDataSource(reportFilePath, params, dataSource)
- .getJasperPrint();
-
- JRHtmlExporter exporter = new JRHtmlExporter();
- request.getSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);
- exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
- exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
- exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "./servlets/image?image=");
- exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "UTF-8");
-
- exporter.exportReport();
- } catch (Exception e) {
- e.printStackTrace();
- throw new JasperReportException("在導(dǎo)出Html格式報表時發(fā)生錯誤!");
- } finally {
- if (out != null) {
- try {
- out.close();
- } catch (Exception e) {
- }
- }
- }
- } catch (IOException ioe) {
- ioe.printStackTrace();
- throw new JasperReportException("從Response中取得PrintWriter時發(fā)生錯誤!");
- }
- }
-
- }
Excel格式的:
java 代碼
-
-
-
-
- package cn.com.reachway.framework.report.export;
-
- import java.io.IOException;
- import java.io.OutputStream;
- import java.net.URLEncoder;
- import java.sql.Connection;
- import java.util.List;
- import java.util.Map;
-
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
-
- import net.sf.jasperreports.engine.JRDataSource;
- import net.sf.jasperreports.engine.JRException;
- import net.sf.jasperreports.engine.JRExporterParameter;
- import net.sf.jasperreports.engine.JasperPrint;
- import net.sf.jasperreports.engine.export.JRXlsAbstractExporter;
- import net.sf.jasperreports.engine.export.JRXlsAbstractExporterParameter;
- import net.sf.jasperreports.j2ee.servlets.BaseHttpServlet;
- import cn.com.reachway.framework.exception.JasperReportException;
- import cn.com.reachway.framework.report.jasperPrint.JasperPrintWithConnection;
- import cn.com.reachway.framework.report.jasperPrint.JasperPrintWithDataSource;
-
-
-
-
- public abstract class BaseExcelExport {
-
-
-
-
-
-
-
-
-
-
-
- public void export(HttpServletRequest request, HttpServletResponse response, String reportFilePath, Map params,
- Connection con, String fileName) throws JasperReportException {
- JasperPrint jasperPrint = new JasperPrintWithConnection(reportFilePath, params, con).getJasperPrint();
-
- request.getSession().setAttribute(BaseHttpServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);
-
- List jasperPrintList = BaseHttpServlet.getJasperPrintList(request);
-
- if (jasperPrintList == null) {
- throw new JasperReportException("在Http Session中沒有找到JasperPrint List");
- }
- try {
- OutputStream ouputStream = response.getOutputStream();
- try {
-
- response.setContentType("application/xls");
- response.setCharacterEncoding("UTF-8");
- if (fileName == null || fileName.equals(""))
- response.setHeader("Content-Disposition", "inline; filename=\"noTitle.xls\"");
- else {
- response.setHeader("Content-Disposition", "inline; filename=\""
- + URLEncoder.encode(fileName, "UTF-8") + ".xls\"");
-
- }
-
- JRXlsAbstractExporter exporter = getXlsExporter();
-
-
- exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, jasperPrintList);
-
- exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);
-
- exporter.setParameter(JRXlsAbstractExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
- exporter.setParameter(JRXlsAbstractExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
-
- exporter.exportReport();
- } catch (JRException e) {
- e.printStackTrace();
- throw new JasperReportException("在生成XLS報表時發(fā)生錯誤!");
- }
-
- finally {
- if (ouputStream != null) {
- try {
- ouputStream.close();
- } catch (IOException ex) {
- }
- }
- }
- } catch (IOException ioe) {
- ioe.printStackTrace();
- throw new JasperReportException("從Response中取得OutputStream時發(fā)生錯誤!");
- }
-
- }
-
-
-
-
-
-
-
-
-
-
-
-
- public void export(HttpServletRequest request, HttpServletResponse response, String reportFilePath, Map params,
- JRDataSource dataSource, String fileName) throws JasperReportException {
- JasperPrint jasperPrint = new JasperPrintWithDataSource(reportFilePath, params, dataSource).getJasperPrint();
-
- request.getSession().setAttribute(BaseHttpServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);
-
- List jasperPrintList = BaseHttpServlet.getJasperPrintList(request);
-
- if (jasperPrintList == null) {
- throw new JasperReportException("在Http Session中沒有找到JasperPrint List");
- }
- try {
- OutputStream ouputStream = response.getOutputStream();
- try {
-
- response.setContentType("application/xls");
- response.setCharacterEncoding("UTF-8");
- if (fileName == null || fileName.equals(""))
- response.setHeader("Content-Disposition", "inline; filename=\"noTitle.xls\"");
- else {
- response.setHeader("Content-Disposition", "inline; filename=\""
- + URLEncoder.encode(fileName, "UTF-8") + ".xls\"");
-
- }
-
- JRXlsAbstractExporter exporter = getXlsExporter();
-
-
- exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, jasperPrintList);
-
- exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);
-
- exporter.setParameter(JRXlsAbstractExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
- exporter.setParameter(JRXlsAbstractExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
-
- exporter.exportReport();
- } catch (JRException e) {
- e.printStackTrace();
- throw new JasperReportException("在生成XLS報表時發(fā)生錯誤!");
- }
-
- finally {
- if (ouputStream != null) {
- try {
- ouputStream.close();
- } catch (IOException ex) {
- }
- }
- }
- } catch (IOException ioe) {
- ioe.printStackTrace();
- throw new JasperReportException("從Response中取得OutputStream時發(fā)生錯誤!");
- }
-
- }
-
- protected abstract JRXlsAbstractExporter getXlsExporter();
-
- }
java 代碼
-
-
-
-
- package cn.com.reachway.framework.report.export;
-
- import net.sf.jasperreports.engine.export.JRXlsAbstractExporter;
- import net.sf.jasperreports.engine.export.JRXlsExporter;
-
-
-
-
- public class XlsPOIExport extends BaseExcelExport {
-
- protected JRXlsAbstractExporter getXlsExporter() {
- return new JRXlsExporter();
- }
-
- }
-
java 代碼
-
-
-
-
- package cn.com.reachway.framework.report.export;
-
- import net.sf.jasperreports.engine.export.JExcelApiExporter;
- import net.sf.jasperreports.engine.export.JRXlsAbstractExporter;
-
-
-
-
- public class XlsJExcelExport extends BaseExcelExport {
-
- protected JRXlsAbstractExporter getXlsExporter() {
- return new JExcelApiExporter();
- }
- }