1,PDF

//据据jasper文件生成JasperPrint对象

JasperPrint jasperPrint = JasperFillManager.fillReport("WebRoot//JasperFile//report9.jasper", new HashMap(),connection);

//生成我们的导出类JRPdfExporter 来自JRExporter

JRPdfExporter jrpdfExporter = new JRPdfExporter();

//设JasperPrint参数

jrpdfExporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);

//设置输入的PDF文件放在什么地方

jrpdfExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "WebRoot//JasperFile//exporter.pdf");

//输出

jrpdfExporter.exportReport();

或者

File Pdf = new File(pdfFile);

JasperExportManager.exportReportToPdfFile(jasperPrint, Pdf.getAbsolutePath());

2,XLS

//Excel JExcelApiExporter 来自JRExporter

JExcelApiExporter xlsExporter = new JExcelApiExporter();

xlsExporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);

xlsExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,"WebRoot//JasperFile//exporter.xls");

xlsExporter.exportReport();

3,在WEB上面生成HTML的报表

public class HtmlReportServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

try {

//连结数据库

Class.forName("com.mysql.jdbc.Driver");

Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/jasperreportdb","root","root");

//获得Jasper输入流

InputStream inputStream = getServletConfig().getServletContext().getResourceAsStream("JasperFile//report9.jasper");

//获得JasperPrint对象

JasperPrint jasperPrint = JasperFillManager.fillReport(inputStream, new HashMap(),connection);

connection.close();

//设置格式

response.setContentType("text/html");

//获得输出流 ,这里不能这样response.getOutputStream()

PrintWriter printWriter = response.getWriter();

//创建JRHtmlExporter对象

JRHtmlExporter htmlExporter = new JRHtmlExporter();

//把jasperPrint到Session里面(net.sf.jasperreports.j2ee.jasper_print)

request.getSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);

//设值jasperPrint

htmlExporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);

//设置输出

htmlExporter.setParameter(JRExporterParameter.OUTPUT_WRITER,printWriter);

//设置图片生成的Servlet(生成图片就用这个ImageServlet,并且要在XML文件里面配置 image?image=这个是Servlet的url-pattern)

htmlExporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,"image?image=");

//导出

htmlExporter.exportReport();

printWriter.close();

} catch (SQLException e) {

e.printStackTrace();

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (JRException e) {

e.printStackTrace();

}

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

this.doGet(request, response);

}

}

HtmlReportServlet

com.langhua.JasperReport.Servlet.HtmlReportServlet

ImageServlet

net.sf.jasperreports.j2ee.servlets.ImageServlet

ImageServlet

/servlet/image

4,JasperReport调用接口

private static void callJasperReport(String jasperFileStr, String pdfFileStr) {

Connection con = null;

try {

File jasperFile = new File(jasperFileStr);

if (jasperFile.exists()) {

HashMap params = getParamaterMap();

Class.forName("oracle.jdbc.driver.OracleDriver");

con = DriverManager.getConnection(jdbcUrl, dbUser, dbPassword);

JasperPrint jasperPrint = null;

if (con != null) {

jasperPrint = JasperFillManager.fillReport(jasperFileStr,

params, con);

} else {

jasperPrint = JasperFillManager.fillReport(jasperFileStr,

params, new JREmptyDataSource());

}

//PDF

//outputPDF(pdfFileStr, jasperPrint);

//xls

outputXLS(pdfFileStr, jasperPrint);

} else {

System.out.println("找不到jasper文件:" + jasperFileStr);

}

} catch (Exception e) {

e.printStackTrace();

} finally {

if (con != null) {

try {

con.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

private static HashMap getParamaterMap() {

HashMap params = new HashMap();

return params;

}

5, Java Project中包含的Jar包可参考:

commons-beanutils-1.8.2.jar

commons-collections-3.2.1.jar

commons-digester-1.7.jar

commons-logging-1.1.jar

iText-2.1.7.jar

iTextAsian.jar

JasperReports-4.0.2.jar

ojdbc14.jar

org-netbeans-core.jar (缺少会报字体异常,Caused by: java.lang.ClassNotFoundException: org.netbeans.beaninfo.editors.ColorEditor$SuperColor)

jxl-2.6.10.jar (缺少会报: java.lang.NoClassDefFoundError: jxl/write/biff/RowsExceededException)

java调用jasperreport_Java代码导出Jasperreport相关推荐

  1. java 调用window程序_Windows下Java调用可执行文件代码实例

    这篇文章主要介绍了Windows下Java调用可执行文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 缘起: 由于没有找到java转换文件 ...

  2. 使用JNA,让java调用原生代码

    JNA定义: JNA:java Native Access,是SUN公司开发的基于JNI的框架.JNI使得Java可以调用原生的c或者c++代码. JNA与JNI(Java Native Interf ...

  3. 01_JNI是什么,为什么使用,怎么用JNI,Cygwin环境变量配置,NDK案例(使用Java调用C代码),javah命令使用

    1 什么是JNI JNI Java本地开发接口 JNI是一个协议,这个协议用来沟通java代码和外部的本地代码(C/C++) 通过这个协议,java代码就可以调用外部的C/C++代码,外部的C/C++ ...

  4. java调用python代码

    同样的我们需要安装jython,具体的步骤如下: 1. 去 http://sourceforge.net/projects/jython/ 下载最新的jython相关的jar包. 2. 下载下来的ja ...

  5. java调用javafx_Java代码调用JavaFX的例子(大力推荐)

    在JavaFX 1.0发布之后,本人撰写的文章JavaFX和Java之间的互操作性被各网站转载.文中总结了3种从Java调用JavaFX的方法.这三种方法分别为: http://www.javafxb ...

  6. JNI实现Java调用C代码Demo AndroidStudio

    JNI(Java Native Interface)的本意是Java本地调用,它是为了方便java调用C/C++等本地代码所封装的一层接口 Android NDK(Native Development ...

  7. Java和MATLAB混合编程,Java调用MATLAB代码

    大家可能像我一样,是MATLAB 2014a或者MATLAB 2015a或者更高,因此找不到java package. 大家可能看到其他博客配置matlab 2013版本的,所以在这里就记录下MATL ...

  8. JAVA调用Matlab代码(MATLAB 2014a)

    本人考虑到用java绘制图形以及实现一些计算效率不高,实现起来有些复杂.而利用MATLAB写好相应的计算函数,然后打包成jar包供Java调用,在某些情况下会更加方便.或者有些时候会涉及到使用Java ...

  9. eclipse java调用c 代码吗_linux下通过eclipse开发用java调用c程序的方法

    linux下通过eclipse开发用java调用c程序的方法: 1.先建立好java工程并建立java文件如下: public class testso {     static {         ...

最新文章

  1. php 图片在线编辑功能,summernote在线编辑器提交的内容PHP处理其中图片函数
  2. 智能车竞赛技术报告 | 节能信标组组 - 大连民族大学 - 粉红靓车队
  3. html 浮动脱离文档流,CSS标准文档流与脱离文档流
  4. Block 再学习 !
  5. 用C语言做的 一个整人的小程序
  6. Oracle导入导出数据
  7. java 加减乘除 工具类_Java数学工具类MathUtil详解
  8. Oracle PL/SQL语言初级教程
  9. iOS开发 - iOS10隐私数据访问问题
  10. empty string什么错误_go语言的interface为什么好用?
  11. SpringBoot结合ActiveMQ(同时支持Queue和Topic)
  12. 新版换密交友月老盲盒微信小程序源码
  13. 电脑主机前置耳机插孔没声音——解决办法
  14. 阿里 Java 性能调优手册,简直yyds
  15. 数学在计算机领域的应用,浅析数学在计算机领域中的重要性
  16. wifi WPS功能介绍
  17. Python-身体质量指数BMI
  18. 五万字 | Flink知识体系保姆级总结
  19. 854. Floyd求最短路
  20. PDF格式的“在线阅读”和“下载”

热门文章

  1. 建站WordPress
  2. 为什么现在的女孩子结婚都要房要车和高昂的彩礼?
  3. AI在棒球联盟赛运用·棒球1号位
  4. 3. 在WordPress管理后台撰写第一篇博客文章
  5. Java多线程爬虫,爬取酷我音乐排行榜全部音乐示例
  6. c语言 出局者 算法,下一个出局者是谁
  7. 一台电脑同时连接外网和内网
  8. Oracle 增加表空间
  9. 赛马网基本算法之--路灯
  10. Day_07数组中最大最小值