ireport各种格式打印方式

本文主要介绍使用iReport以可视化的方式来生成JasperReport所使用的报表格式文件,并通过JasperReport提供的API将数据导出到html、excel、pdf等格式的文件中。

在这里iReport的使用版本为iReport-5.0.4。JasperReport使用的是5.0.4。由于导出到pdf,JasperReport用到iText库,所以这里使用的iText-2.1.7版本。当然不要忘了iTextAsian.jar对中文的支持。

实现步骤如下:

1.下载安装iReport-5.0.4。(地址此处省略,自己google)

2.打开iReport,新建文件:文件—>new

选择Blank A4,点击Open this Template,完成报表的创建

3.连接数据库

点击Report Datasources图标,弹出下图对话框。

new一个新的数据源

选择JDBC Connection ,设置配置


Test成功后,保存配置。这里使用mysql数据库,数据库为surveysdb。

4.报表连接数据库查询。

点击,设置报表查询的语句,点击read fields会显示表字段结构

点击ok,iReport界面左边Fileds会出现数据库表字段。如下图所示

5。拖放字段,设计报表格式。将表中字段拖入到detail区域,增加列明和标题,如下图所示。

6.预览报表,选择菜单栏上的preview,选择要预览的格式,这里选择HTML。点击下图中的preview

预览结果如下。

若选择excel格式,可导出excel格式到电脑上。

下面就用JasperReport API根据iReport生成的文件将记录导出到各类文件中。

1.点击,将编译生成.jasper文件。

2.将jasper文件拷贝到web工程下

3编写index.jsp文件,跳转到处理导出文件的 servlet中。

4.项目需要引入的架包如下图所示。

下面给大家展示处理各种文件导出的代码。

操作之前要先连接数据库

导出到Html文件操作。

01 /**
02      * 导出为html文件
03      * @param request
04      * @param response
05      */
06     private void exportHtml( HttpServletResponse response,Connection conn){
07          
08         try {
09             response.setCharacterEncoding("UTF-8"); 
10             ServletContext servletContext=this.getServletConfig().getServletContext();
11             //得到jasper文件
12             File jasperFile=newFile(servletContext.getRealPath("/jasper/Report.jasper"));
13             JasperReport jasperReport =(JasperReport)JRLoader.loadObject(jasperFile.getPath());
14             JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,null,conn);
15             JRHtmlExporter exporter = new JRHtmlExporter();
16              
17             exporter.setParameter(JRHtmlExporterParameter.JASPER_PRINT, jasperPrint);
18             exporter.setParameter(JRHtmlExporterParameter.OUTPUT_WRITER,response.getWriter());
19             exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,Boolean.FALSE);
20             exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "utf-8");
21             exporter.exportReport();
22         catch (JRException e) {
23             e.printStackTrace();
24         catch (IOException e){
25             e.printStackTrace();
26         }
27     }

导出到excel文件操作。

01 /**
02      * 导出为excel文件
03      * @param request
04      * @param response
05      */
06     private void exportExcel( HttpServletResponse response,Connection conn){
07         try {
08             response.setCharacterEncoding("UTF-8"); 
09             ServletContext servletContext=this.getServletConfig().getServletContext();
10             //得到jasper文件
11             File jasperFile=newFile(servletContext.getRealPath("/jasper/Report.jasper"));
12             JasperReport jasperReport= (JasperReport)JRLoader.loadObject(jasperFile.getPath());
13             JasperPrint jasperPrint=JasperFillManager.fillReport(jasperReport,null,conn);
14             JRXlsExporter exporter=new JRXlsExporter();
15             exporter.setParameter(JRXlsExporterParameter.JASPER_PRINT, jasperPrint);
16             exporter.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, response.getOutputStream());
17             exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
18             exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
19  
20             response.setHeader("Content-Disposition""attachment;filename=first.xls");
21             response.setContentType("application/vnd_ms-excel");
22             exporter.exportReport();
23         catch (JRException e) {
24             e.printStackTrace();
25         catch (IOException e){
26             e.printStackTrace();
27         }
28     }

导出到pdf文件操作。

01 /**
02      * 导出为pdf文件
03      * @param response
04      * @param conn
05      */
06     private void exportPdf(HttpServletResponse response, Connection conn) {
07         try {
08             ServletContext servletContext=this.getServletConfig().getServletContext();
09             //得到jasper文件
10             File jasperFile=newFile(servletContext.getRealPath("/jasper/Report.jasper"));
11             JasperReport jasperReport= (JasperReport)JRLoader.loadObject(jasperFile.getPath());
12             JasperPrint jasperPrint=JasperFillManager.fillReport(jasperReport,null,conn);
13             JRPdfExporter exporter = new JRPdfExporter(); 
14             exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
15             exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());
16              
17             response.setHeader("Content-Disposition""attachment;filename=first.pdf");
18             response.setContentType("application/pdf");
19             response.setCharacterEncoding("UTF-8"); 
20             exporter.exportReport();
21              
22         catch (Exception e) {
23             e.printStackTrace();
24         }
25     }

到了这里就已经完成功能的实现了。在iReport中读者可以使用可视化组件,设计出漂亮美观的报表。

你可能感兴趣的:(web技术)