【iReport+JasperReport】3.在Java工程中用jasper导出Excel报表
来源:互联网 发布:网络电视手机在线直播 编辑:程序博客网 时间:2024/06/14 17:34
上一次我们使用JasperReport导出了PDF格式的报表文件,我们这次利用同样的jasper文件,来在硬盘中导出Excel报表。
实现导出的Java的详细代码请查看上一篇,这里只修改最后的启动类代码。
我们先回顾一下jasper的实际效果:
然后我们修改一下启动类代码,之前打印pdf的代码为:
打印Excel报表,首先加入poi的依赖jar包(这里我使用的是poi-3.8-beta4-20110826.jar),然后将启动类代码中关于打印的逻辑修改,将JRPdfExporter改为JRXlsExporter,然后修改部分setParameter设置参数:
效果可能没有pdf好看,这是因为原来我们只是设计为了打印pdf,如果要打印Excel,就要设计的更合理一些,这里我们仅仅为了演示效果。
实现导出的Java的详细代码请查看上一篇,这里只修改最后的启动类代码。
我们先回顾一下jasper的实际效果:
然后我们修改一下启动类代码,之前打印pdf的代码为:
package com.cn.org.ireport.test;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileOutputStream;import java.util.HashMap;import java.util.Map;import net.sf.jasperreports.engine.JRAbstractExporter;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.export.JRPdfExporter;import net.sf.jasperreports.engine.export.JRPdfExporterParameter;public class TestReportHere { public static void main(String[] args) { Map parameters=new HashMap(); ByteArrayOutputStream outPut=new ByteArrayOutputStream(); FileOutputStream outputStream=null; File file=new File("F:/Temp/report.xls"); String reportModelFile="C:/Users/jack/report2.jasper"; try { JasperPrint jasperPrint=JasperFillManager.fillReport(reportModelFile, parameters,new ReportDataSource("男")); JRAbstractExporter exporter=new JRPdfExporter(); //创建jasperPrint exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); //生成输出流 exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outPut); //屏蔽copy功能 exporter.setParameter(JRPdfExporterParameter.IS_ENCRYPTED,Boolean.TRUE); //加密 exporter.setParameter(JRPdfExporterParameter.IS_128_BIT_KEY,Boolean.TRUE); exporter.exportReport(); outputStream=new FileOutputStream(file); outputStream.write(outPut.toByteArray()); } catch (JRException e) { e.printStackTrace(); }catch (Exception e) { e.printStackTrace(); }finally{ try { outPut.flush(); outPut.close(); } catch (Exception e) { e.printStackTrace(); } } }}打印出的pdf效果为:
打印Excel报表,首先加入poi的依赖jar包(这里我使用的是poi-3.8-beta4-20110826.jar),然后将启动类代码中关于打印的逻辑修改,将JRPdfExporter改为JRXlsExporter,然后修改部分setParameter设置参数:
package com.cn.org.ireport.test;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileOutputStream;import java.util.HashMap;import java.util.Map;import net.sf.jasperreports.engine.JRAbstractExporter;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.export.JRXlsExporter;import net.sf.jasperreports.engine.export.JRXlsExporterParameter;public class TestReportHere { public static void main(String[] args) { Map parameters=new HashMap(); ByteArrayOutputStream outPut=new ByteArrayOutputStream(); FileOutputStream outputStream=null; File file=new File("F:/Temp/report.xls"); String reportModelFile="C:/Users/jack/report2.jasper"; try { JasperPrint jasperPrint=JasperFillManager.fillReport(reportModelFile, parameters,new ReportDataSource("男")); JRAbstractExporter exporter = new JRXlsExporter(); //创建jasperPrint exporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint); //生成输出流 exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,outPut); //去除两行之前的空白 exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,Boolean.TRUE); //设置所有页只打印到一个Sheet中 exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,Boolean.FALSE); //设置Excel表格的背景颜色为默认的白色 exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,Boolean.FALSE); exporter.exportReport(); outputStream=new FileOutputStream(file); outputStream.write(outPut.toByteArray()); } catch (JRException e) { e.printStackTrace(); }catch (Exception e) { e.printStackTrace(); }finally{ try { outPut.flush(); outPut.close(); } catch (Exception e) { e.printStackTrace(); } } }}打印出的效果为:
效果可能没有pdf好看,这是因为原来我们只是设计为了打印pdf,如果要打印Excel,就要设计的更合理一些,这里我们仅仅为了演示效果。
其次JasperReport还可以打印出其他格式的报表,大家根据自己的需求去添加相应的jar包,修改部分逻辑即可,这里不再赘述。
转载请注明出处:http://blog.csdn.net/acmman/article/details/51828558
0 0
- 【iReport+JasperReport】3.在Java工程中用jasper导出Excel报表
- 【iReport+JasperReport】2.在Java工程中利用jasper导出PDF报表
- ireport、jasperreport 导出excel的java代码
- 使用JasperReport和iReport制作java报表
- JasperReport+iReport进行java报表开发
- JasperReport + iReport 实现Java报表套打
- 使用JasperReport和iReport制作java报表
- java(ireport+jasperreport)创建报表
- 使用JasperReport和iReport制作java报表
- Jasperreport+iReport制作报表
- iReport+JasperReport报表开发
- ireport设计导出模板,Jasperreport导出PDF、HTML、Excel
- Jasperreport+iReport报表设计(二)通用导出页面
- jasperReport+ireport实现报表导出和数据分析
- Java 使用 iReport 导出报表
- ireport、jasperreport studio 导出excel有白色背景
- 【转载】在jsp中调用报表IReport+JasperReport
- 使用JasperReport和iReport制作java报表- -(转)
- 程序员常用工具大全(转载+原创)
- [Cloud Computing]Mechanisms: Automatically Defined Perimeter Controller
- 微信 支付异步回调 获取参数值
- 使用Eclipse里的Tomcat经常内存溢出的解决方法
- 匈牙利算法模板
- 【iReport+JasperReport】3.在Java工程中用jasper导出Excel报表
- JVM内存不足增大运行时内存
- 接口回调是个啥?
- shiro入门实例
- weChat 支付 (转载)
- HAWQ ——功能强大的SQL-on-Hadoop引擎
- Python冒泡排序
- jquery dialog 属性详解
- 中兴面试经历(回忆版) -20160628