热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jasperreports制作报表(导出pdfexcelhtml)

jasperreport生成报表的各种格式关键代码:Connectionconnnull;Stringtyperequest.getParame

jasperreport生成报表的各种格式

关键代码:

 Connection cOnn= null;
      String type = request.getParameter("type");
      try
      {
         
         Class.forName("oracle.jdbc.driver.OracleDriver");
         cOnn= DriverManager.getConnection(

         "jdbc:oracle:thin:@127.0.0.1:1521:orcl","mutouyihao","xx");

         ServletContext servletCOntext= this.getServletContext();
         File reportFile = new File(servletContext.getRealPath("/")+"/WEB-INF/report/Untitled_report_1.jasper");
         Map parameters = new HashMap();
         if("pdf".equals(type)){
            byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath(), parameters, conn);
            response.setContentType("application/pdf");
            response.addHeader("Content-Disposition", "attachment; filename=report.pdf");
            response.setContentLength(bytes.length);
            ServletOutputStream ouputStream = response.getOutputStream();
            ouputStream.write(bytes, 0, bytes.length);
            ouputStream.flush();
            ouputStream.close();
         } else if ("excel".equals(type)){
            JRXlsExporter exporter = new JRXlsExporter();   
            ByteArrayOutputStream oStream = new ByteArrayOutputStream();   
            JasperPrint jasperPrint = JasperFillManager.fillReport(reportFile.getPath(), parameters, conn);   
            exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);   
            exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, oStream);   
            exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);   
            exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);   
            exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);   
            exporter.exportReport();   
               
            byte[] bytes = oStream.toByteArray();   
            response.setContentType("application/vnd.ms-excel"); 
            response.addHeader("Content-Disposition", "attachment; filename=report.xls");
            response.setContentLength(bytes.length);   
            ServletOutputStream ouputStream = response.getOutputStream();   
            ouputStream.write(bytes, 0, bytes.length);   
            ouputStream.flush();   
            ouputStream.close();   
           
         }
      }
      catch (JRException jre)
      {
         System.out.println("JRException:" + jre.getMessage());
      }
      catch (Exception e)
      {
         System.out.println("Exception:" + e.getMessage());
      }
      finally{
         try
         {
            conn.close();
         }
         catch (SQLException ex)
         {
            // TODO Auto-generated catch block
            ex.printStackTrace();
         }
      }


生成html的参考

 //生成html   
            JRHtmlExporter exporter = new JRHtmlExporter();   
            ByteArrayOutputStream oStream = new ByteArrayOutputStream();   
            JasperPrint jasperPrint = JasperFillManager.fillReport(rpt.getPath(), map, con);   
            exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);   
            exporter.setParameter(JRHtmlExporterParameter.JASPER_PRINT, jasperPrint);   
            exporter.setParameter(JRHtmlExporterParameter.CHARACTER_ENCODING, "utf-8");   
            exporter.setParameter(JRHtmlExporterParameter.OUTPUT_STREAM, oStream);   
            exporter.exportReport();   
            byte[] bytes = oStream.toByteArray();   
            response.setContentType("text/html");   
            response.setContentLength(bytes.length);   
            response.setCharacterEncoding("utf-8");   
            ServletOutputStream ouputStream = response.getOutputStream();   
            ouputStream.write(bytes, 0, bytes.length);   
            ouputStream.flush();   
            ouputStream.close();   
            con.close();   
            out.clear();   
            out = pageContext.pushBody();   


 


推荐阅读
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 开发笔记:Java是如何读取和写入浏览器Cookies的
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java是如何读取和写入浏览器Cookies的相关的知识,希望对你有一定的参考价值。首先我 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 纠正网上的错误:自定义一个类叫java.lang.System/String的方法
    本文纠正了网上关于自定义一个类叫java.lang.System/String的错误答案,并详细解释了为什么这种方法是错误的。作者指出,虽然双亲委托机制确实可以阻止自定义的System类被加载,但通过自定义一个特殊的类加载器,可以绕过双亲委托机制,达到自定义System类的目的。作者呼吁读者对网上的内容持怀疑态度,并带着问题来阅读文章。 ... [详细]
author-avatar
刘胜良昭桂家贤
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有