Jasper6 导出Excle,PDF,World文件
来源:互联网 发布:咫尺网络代理商 编辑:程序博客网 时间:2024/05/27 06:16
最近一直在弄Jasper的报表,整理了一个工具类,拿来分享下
package yjkj.hospital.util;import java.io.File;import java.io.IOException;import java.util.Map;import javax.servlet.http.HttpServletResponse;import net.sf.jasperreports.engine.JRException;import net.sf.jasperreports.engine.JasperFillManager;import net.sf.jasperreports.engine.JasperPrint;import net.sf.jasperreports.engine.JasperPrintManager;import net.sf.jasperreports.engine.JasperReport;import net.sf.jasperreports.engine.JasperReportsContext;import net.sf.jasperreports.engine.SimpleJasperReportsContext;import net.sf.jasperreports.engine.export.HtmlExporter;import net.sf.jasperreports.engine.export.JRPdfExporter;import net.sf.jasperreports.engine.export.ooxml.JRDocxExporter;import net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter;import net.sf.jasperreports.engine.util.JRLoader;import net.sf.jasperreports.export.DocxReportConfiguration;import net.sf.jasperreports.export.PdfReportConfiguration;import net.sf.jasperreports.export.SimpleExporterInput;import net.sf.jasperreports.export.SimpleHtmlExporterConfiguration;import net.sf.jasperreports.export.SimpleHtmlExporterOutput;import net.sf.jasperreports.export.SimpleOutputStreamExporterOutput;import net.sf.jasperreports.export.XlsxReportConfiguration;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import yjkj.hospital.util.UtilKeyWord.ReportFileType;/** * 报表工具类 * @author XIONG SHIXIN * @since 2017年4月18日 */public class UtilReport { private static final Logger LOG = LoggerFactory.getLogger(UtilReport.class); /** * 报表文件导出(PDF,Excle,World) * <p>@param params 报表需要的参数<p> * <p>@param filePath 模板文件的绝对路径<p> * <p>@param fileName 输出文件名<p> * <p>@param suffix 文件后缀名<p> * @throws JRException +--+-************ * @throws IOException */ public static void reportExport(HttpServletResponse response, Map<String, Object> params, String filePath, String fileName, ReportFileType suffix) throws JRException, IOException{ try { switch (suffix){ case PDF: pdfExport(response, params, filePath, fileName, suffix, null); break; case WORLD: worldExport(response, params, filePath, fileName, suffix, null); break; case EXCEL: excleExport(response, params, filePath, fileName, suffix, null); break; default: LOG.error("不支持导出此类文件!"); throw new JRException("不支持导出此类文件!"); } } catch (JRException e) { throw e; } catch (IOException e) { throw e; } } /** * pdf导出方法 * <p>@param response <p> * <p>@param params 报表需要的参数<p> * <p>@param filePath 模板文件的绝对路径<p> * <p>@param fileName 输出文件名<p> * <p>@param suffix 文件后缀名<p> * <p>@param pr 输出配置信息<p> * @throws JRException * @throws IOException */ public static void pdfExport(HttpServletResponse response, Map<String, Object> params, String filePath, String fileName, ReportFileType suffix, PdfReportConfiguration pr) throws JRException, IOException{ JasperPrint jasperPrint; try { File jasperFile = new File(filePath); JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperFile); jasperPrint = JasperFillManager.fillReport(jasperReport, params, UtilPersistence.getConnection()); response.setCharacterEncoding("utf-8"); fileName = fileName + "." + suffix.toString(); response.setHeader("Content-Disposition","attachment;" + "filename=" + new String(fileName.getBytes(), "ISO-8859-1")); response.setContentType("application/pdf"); JRPdfExporter pdfExporter = new JRPdfExporter(); pdfExporter.setExporterInput(new SimpleExporterInput(jasperPrint)); pdfExporter.setExporterOutput(new SimpleOutputStreamExporterOutput(response.getOutputStream())); if(!UvUtil.isNull(pr)){ pdfExporter.setConfiguration(pr); } pdfExporter.exportReport(); } catch (JRException e) { throw e; } catch (IOException e) { throw e; } } /** * World导出方法 * <p>@param response <p> * <p>@param params 报表需要的参数<p> * <p>@param filePath 模板文件的绝对路径<p> * <p>@param fileName 输出文件名<p> * <p>@param suffix 文件后缀名<p> * <p>@param dr 输出配置信息<p> * @throws JRException * @throws IOException */ public static void worldExport(HttpServletResponse response, Map<String, Object> params, String filePath, String fileName, ReportFileType suffix, DocxReportConfiguration dr) throws JRException, IOException{ JasperPrint jasperPrint; try { File jasperFile = new File(filePath); JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperFile); jasperPrint = JasperFillManager.fillReport(jasperReport, params, UtilPersistence.getConnection()); response.setCharacterEncoding("utf-8"); fileName = fileName + "." + suffix.toString(); response.setHeader("Content-Disposition","attachment;" + "filename=" + new String(fileName.getBytes(), "ISO-8859-1")); response.addHeader("Content-Type", "application/x-msword"); JRDocxExporter worldExporter = new JRDocxExporter(); worldExporter.setExporterInput(new SimpleExporterInput(jasperPrint)); worldExporter.setExporterOutput(new SimpleOutputStreamExporterOutput(response.getOutputStream())); if(!UvUtil.isNull(dr)){ worldExporter.setConfiguration(dr); } worldExporter.exportReport(); } catch (JRException e) { throw e; } catch (IOException e) { throw e; } } /** * Excle导出方法 * <p>@param response <p> * <p>@param params 报表需要的参数<p> * <p>@param filePath 模板文件的绝对路径<p> * <p>@param fileName 输出文件名<p> * <p>@param suffix 文件后缀名<p> * <p>@param xs 输出配置信息<p> * @throws JRException * @throws IOException */ public static void excleExport(HttpServletResponse response, Map<String, Object> params, String filePath, String fileName, ReportFileType suffix, XlsxReportConfiguration xs) throws JRException, IOException{ JasperPrint jasperPrint; try { File jasperFile = new File(filePath); JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperFile); jasperPrint = JasperFillManager.fillReport(jasperReport, params, UtilPersistence.getConnection()); response.setCharacterEncoding("utf-8"); fileName = fileName + "." + suffix.toString(); response.setHeader("Content-Disposition","attachment;" + "filename=" + new String(fileName.getBytes(), "ISO-8859-1")); response.setContentType("application/vnd_ms-excel"); JRXlsxExporter xlsxExporter = new JRXlsxExporter(); xlsxExporter.setExporterInput(new SimpleExporterInput(jasperPrint)); xlsxExporter.setExporterOutput(new SimpleOutputStreamExporterOutput(response.getOutputStream())); if(!UvUtil.isNull(xs)){ xlsxExporter.setConfiguration(xs); } xlsxExporter.exportReport(); } catch (JRException e) { throw e; } catch (IOException e) { throw e; } } /** * 以HTML渲染报表 * <p>@param response<p> * <p>@param params 报表需要的参数<p> * <p>@param filePath 文件的绝对路径<p> * <p>@param exporterConfig 输出配置信息<p> * @throws JRException * @throws IOException */ public static void reportShow(HttpServletResponse response, Map<String, Object> params, String filePath, SimpleHtmlExporterConfiguration exporterConfig) throws JRException, IOException{ JasperPrint jasperPrint; try { // 设定reponse的输出格式 response.setCharacterEncoding("utf-8"); File jasperFile = new File(filePath); // 创建JasperReport对象 JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperFile); // 填充JasperReport jasperPrint = JasperFillManager.fillReport(jasperReport, params, UtilPersistence.getConnection()); HtmlExporter exporter = new HtmlExporter(); exporter.setExporterInput(new SimpleExporterInput(jasperPrint)); // 设定导出类型为response.getWriter() exporter.setExporterOutput(new SimpleHtmlExporterOutput(response.getWriter())); if(!UvUtil.isNull(exporterConfig)){ exporter.setConfiguration(exporterConfig); } exporter.exportReport(); } catch (JRException e) { LOG.error("渲染报表文件: " + filePath + "出现异常!"); throw e; } catch (IOException e) { LOG.error("渲染报表文件: " + filePath + "出现异常!"); throw e; } } /** * 以HTML渲染报表 * <p>@param response<p> * <p>@param params 报表需要的参数<p> * <p>@param filePath 文件的绝对路径<p> */ public static void reportShow(HttpServletResponse response, Map<String, Object> params, String filePath) throws JRException, IOException{ reportShow(response, params, filePath, null); } /** * 报表打印 * <p>@param response<p> * <p>@param params 报表需要的参数<p> * <p>@param filePath 输入文件的绝对路径<p> * <p>@param jr 输出配置信息<p> * @throws JRException * @throws IOException */ public static void reportPrint(HttpServletResponse response, Map<String, Object> params, String filePath, JasperReportsContext jr) throws JRException{ JasperPrint jasperPrint; try { File jasperFile = new File(filePath); JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperFile); jasperPrint = JasperFillManager.fillReport(jasperReport, params, UtilPersistence.getConnection()); response.setCharacterEncoding("utf-8"); JasperReportsContext jasperReportsContext = null; JasperPrintManager jasperPrintManager = null; if(UvUtil.isNull(jr)){ jasperReportsContext = new SimpleJasperReportsContext(); jasperPrintManager = JasperPrintManager.getInstance(jasperReportsContext); }else { jasperPrintManager = JasperPrintManager.getInstance(jr); } jasperPrintManager.print(jasperPrint, true); } catch (JRException e) { e.printStackTrace(); } } /** * 报表打印 * <p>@param response<p> * <p>@param params 报表需要的参数<p> * <p>@param filePath 输入文件的绝对路径<p> * <p>@param jr 输出配置信息<p> * @throws JRException * @throws IOException */ public static void reportPrint(HttpServletResponse response, Map<String, Object> params, String filePath) throws JRException{ try { reportPrint(response, params, filePath, null); } catch (JRException e) { e.printStackTrace(); } }}
0 0
- Jasper6 导出Excle,PDF,World文件
- struts 文件下载——导出Excle/导出PDF
- C#导出Excle文件
- Php导出excle文件
- MYSQL导出为excle文件
- POI导出excle,文件导出到本地
- Excle导出
- 导出EXCLE
- excle导出
- 导出excle
- excle导出
- excle导出
- JAVA 导出PDF文件
- 数据导出PDF文件
- java PDF文件导出
- java导出PDF文件
- Java导出PDF文件
- php 导出pdf文件
- 场景中创建N(两个以上)个物体,鼠标可以选中任何物体,当鼠标选中为非地面时,选中的物体变为红色,之前选中的物体恢复为之前的颜色,鼠标点击到地面时,让之前选中的那个物体移动的当前点击的位置
- CEPH 概念摘记
- C++递归函数
- 如何查看Linux是32位还是64位
- Linux系统安装并使用Tomcat
- Jasper6 导出Excle,PDF,World文件
- FZU 2020 组合
- Python输入输出重定向
- 4.18
- JSON的基本结构和数据交换原理
- java.lang.NoSuchMethodError: android.graphics.Canvas.drawRoundRect java.lang.NoSuchMethodError: andr
- git log
- CentOS7/RHEL7安装EPEL扩展仓库步骤详解
- Apache+PHP+VC14环境搭建及测试