JasperReport學習筆記7-導出成其它格式(pdf,xls,html)

JasperReport還可以導出爲其它格式,如PDF,XLS,RTF,HTML,CSV 
下面是導出爲PDF和XLS文件

Java代碼  收藏代碼
  1. Class.forName("com.mysql.jdbc.Driver");  
  2.         Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/jasperreportdb","root","root");  
  3.         try {  
  4.             //據據jasper文件生成JasperPrint對象  
  5.             JasperPrint jasperPrint = JasperFillManager.fillReport("WebRoot//JasperFile//report9.jasper"new HashMap(),connection);  
  6.             //生成我們的導出類JRPdfExporter 來自JRExporter  
  7.             JRPdfExporter jrpdfExporter = new JRPdfExporter();  
  8.             //設JasperPrint參數  
  9.             jrpdfExporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);  
  10.             //設置輸入的PDF文件放在什麼地方  
  11.             jrpdfExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "WebRoot//JasperFile//exporter.pdf");  
  12.             //輸出  
  13.             jrpdfExporter.exportReport();  
  14.               
  15.             //Excel  JExcelApiExporter 來自JRExporter  
  16.             JExcelApiExporter xlsExporter = new JExcelApiExporter();  
  17.             xlsExporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);  
  18.             xlsExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,"WebRoot//JasperFile//exporter.xls");  
  19.             xlsExporter.exportReport();           
  20.         } catch (JRException e) {  
  21.             e.printStackTrace();  
  22.         }         


在WEB上面生成HTML的報表 
Java代碼  收藏代碼
  1. public class HtmlReportServlet extends HttpServlet {  
  2.   
  3.     private static final long serialVersionUID = 1L;  
  4.   
  5.     public void doGet(HttpServletRequest request, HttpServletResponse response)  
  6.             throws ServletException, IOException {  
  7.         try {  
  8.             //連結數據庫  
  9.             Class.forName("com.mysql.jdbc.Driver");  
  10.             Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/jasperreportdb","root","root");  
  11.             //獲得Jasper輸入流  
  12.             InputStream inputStream = getServletConfig().getServletContext().getResourceAsStream("JasperFile//report9.jasper");           
  13.             //獲得JasperPrint對象  
  14.             JasperPrint jasperPrint = JasperFillManager.fillReport(inputStream, new HashMap(),connection);  
  15.             connection.close();  
  16.             //設置格式  
  17.             response.setContentType("text/html");  
  18.             //獲得輸出流 ,這裏不能這樣response.getOutputStream()  
  19.             PrintWriter printWriter = response.getWriter();  
  20.             //創建JRHtmlExporter對象  
  21.             JRHtmlExporter htmlExporter = new JRHtmlExporter();  
  22.             //把jasperPrint到Session裏面(net.sf.jasperreports.j2ee.jasper_print)  
  23.             request.getSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);  
  24.             //設值jasperPrint  
  25.             htmlExporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);  
  26.             //設置輸出  
  27.             htmlExporter.setParameter(JRExporterParameter.OUTPUT_WRITER,printWriter);  
  28.             //設置圖片生成的Servlet(生成圖片就用這個ImageServlet,並且要在XML文件裏面配置 image?image=這個是Servlet的url-pattern)  
  29.             htmlExporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,"image?image=");  
  30.             //導出  
  31.             htmlExporter.exportReport();      
  32.             printWriter.close();  
  33.         } catch (SQLException e) {  
  34.             e.printStackTrace();  
  35.         } catch (ClassNotFoundException e) {  
  36.             e.printStackTrace();  
  37.         } catch (JRException e) {  
  38.             e.printStackTrace();  
  39.         }  
  40.     }  
  41.   
  42.     public void doPost(HttpServletRequest request, HttpServletResponse response)  
  43.             throws ServletException, IOException {  
  44.         this.doGet(request, response);  
  45.     }  
  46.   
  47. }  

注意:這個因爲用到了JasperReport裏面的一個Servlet要在web.xml文件裏配置好
Xml代碼  收藏代碼
  1. <servlet>  
  2.     <servlet-name>HtmlReportServlet</servlet-name>  
  3.     <servlet-class>com.langhua.JasperReport.Servlet.HtmlReportServlet</servlet-class>  
  4.   </servlet>  
  5.   <servlet>  
  6.   <servlet-name>ImageServlet</servlet-name>  
  7.     <servlet-class>net.sf.jasperreports.j2ee.servlets.ImageServlet</servlet-class>  
  8.   </servlet>  
  9. <!--url-pattern視你的情況而定,如果圖片出不來,你就看他的連結是什麼 -->  
  10. <servlet-mapping>  
  11.     <servlet-name>ImageServlet</servlet-name>  
  12.     <url-pattern>/servlet/image</url-pattern>  
  13.   </servlet-mapping>  


轉載自:http://langhua9527.iteye.com/blog/403478

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章