文档章节

iReport+JasperReport实现数据库记录导出到html、excel、pdf文档

Jialy
 Jialy
发布于 2013/04/15 16:27
字数 773
阅读 11130
收藏 23
点赞 3
评论 3

本文主要介绍使用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文件操作。

/**
	 * 导出为html文件
	 * @param request
	 * @param response
	 */
	private void exportHtml( HttpServletResponse response,Connection conn){
		
		try {
			response.setCharacterEncoding("UTF-8");  
			ServletContext servletContext=this.getServletConfig().getServletContext();
			//得到jasper文件
			File jasperFile=new File(servletContext.getRealPath("/jasper/Report.jasper"));
			JasperReport jasperReport =(JasperReport)JRLoader.loadObject(jasperFile.getPath());
			JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null,conn);
			JRHtmlExporter exporter = new JRHtmlExporter();
			
			exporter.setParameter(JRHtmlExporterParameter.JASPER_PRINT, jasperPrint);
			exporter.setParameter(JRHtmlExporterParameter.OUTPUT_WRITER,response.getWriter());
			exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,Boolean.FALSE);
			exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "utf-8");
			exporter.exportReport();
		} catch (JRException e) {
			e.printStackTrace();
		} catch (IOException e){
			e.printStackTrace();
		}
	}

 

导出到excel文件操作。

/**
	 * 导出为excel文件
	 * @param request
	 * @param response
	 */
	private void exportExcel( HttpServletResponse response,Connection conn){
		try {
			response.setCharacterEncoding("UTF-8");  
			ServletContext servletContext=this.getServletConfig().getServletContext();
			//得到jasper文件
			File jasperFile=new File(servletContext.getRealPath("/jasper/Report.jasper"));
			JasperReport jasperReport= (JasperReport)JRLoader.loadObject(jasperFile.getPath());
			JasperPrint jasperPrint=JasperFillManager.fillReport(jasperReport,null,conn);
			JRXlsExporter exporter=new JRXlsExporter();
			exporter.setParameter(JRXlsExporterParameter.JASPER_PRINT, jasperPrint);
			exporter.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, response.getOutputStream());
			exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
			exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);

			response.setHeader("Content-Disposition", "attachment;filename=first.xls");
			response.setContentType("application/vnd_ms-excel");
			exporter.exportReport();
		} catch (JRException e) {
			e.printStackTrace();
		} catch (IOException e){
			e.printStackTrace();
		} 
	}

 

导出到pdf文件操作。

/**
	 * 导出为pdf文件
	 * @param response
	 * @param conn
	 */
	private void exportPdf(HttpServletResponse response, Connection conn) {
		try {
			ServletContext servletContext=this.getServletConfig().getServletContext();
			//得到jasper文件
			File jasperFile=new File(servletContext.getRealPath("/jasper/Report.jasper"));
			JasperReport jasperReport= (JasperReport)JRLoader.loadObject(jasperFile.getPath());
			JasperPrint jasperPrint=JasperFillManager.fillReport(jasperReport,null,conn);
			JRPdfExporter exporter = new JRPdfExporter();  
			exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
			exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());
			
			response.setHeader("Content-Disposition", "attachment;filename=first.pdf");
			response.setContentType("application/pdf");
			response.setCharacterEncoding("UTF-8");  
			exporter.exportReport();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

 

 

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

 

 

 

 

 

 



 

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
Jialy
粉丝 23
博文 31
码字总数 19281
作品 0
浦东
程序员
加载中

评论(3)

R
Report初學者
版主,我想請問一下,如果我在報表上加parameter來控制顯示的內容
這是我的sql : select * from COMPANY_EMPLOYEE where EMPLOYEE_ID like $P{Account}
$P{Account} 就是我的參數,
如果使用您所寫的範例來實作,我該如何改寫,可以請您指點嗎? 方便的話有sample更好,感謝
信箱 : gm79405gm@gmail.com
学习report
能发一个源码吗,最近在学习jaspereport,谢谢 ,邮箱 540195111@qq.com
翔宇0720
mark
WEB 打印的相关技术分析

文/谢康 做Web开发的人员一定都会面临一个共同的难题,那就是打印。的确,相对于Windows桌面应用程序来讲,Web应用程序的打印有种种限制,技术人员在项目开发过程中经常会遇到用户这样或那样...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

struts2笔记——整合JasperReports

JasperReports,Jasper .[dʒæspə]碧玉 16.1 JasperReports简介 JasperReport是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成Excel、PDF、HTML或者XML格式。这个工...

梅_95 ⋅ 2016/08/16 ⋅ 0

EasyPoi 3.0.2 版本发布,Excel 和 Word 简易工具类

Excel 和 Word 简易工具类发布了3.0.2 版本,小版本升级,更新如下: word 遍历样式复制 导入校验返回增强 导入校验,校验组参数 Excel--html图标不在单独生成 Excel模板导出加入了图片支持 修复...

Anotherjueyue ⋅ 2017/09/28 ⋅ 1

新一代的HTML5/JS UI控件Wijmo Enterprise 2015 v3全新发布|附下载

Wijmo Enterprise是为企业应用程序开发而推出的一系列包含HTML5和JavaScript的开发控件。 其中包含了金融图表和FlexSheet以及先进的JavaScript控件(Wijmo 5)和经典的jQuery小部件(Wijmo 3...

Miss_Hello_World ⋅ 2015/12/09 ⋅ 0

PDF可以通过OCR图文识别软件转换为JPEG图像吗

FineReader Mac版,全称ABBYY FineReader Pro for Mac,是一款流行的OCR图文识别软件,可快速方便地将扫描纸质文档、PDF文件和数码相机的图像转换成可编辑、可搜索的文本,如Word文档、Excel...

ABBYY ⋅ 2016/09/20 ⋅ 0

EasyPoi 3.0.3 发布,加入 groupName 属性

EasyPoi 快速Office 开发 本次更新重点是加入了groupname属性,可以轻松的解决双行表头的数据处理问题,导入导出同时支持,建议升级 此次更新内容: 加入了groupName 方便处理双行表头问题 ...

Anotherjueyue ⋅ 2017/10/20 ⋅ 4

Java程序员从笨鸟到菜鸟之(一百零四)java操作office和pdf文件(二)利用POI实现数据导出excel报表

在上一篇博客中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式。不仅仅简单的读取office中的数据.尤其是在生产管理...

长平狐 ⋅ 2012/11/12 ⋅ 0

highcharts教程:调用Excel.Application实现图表数据导出至EXCEL

highcharts教程之highcharts线性图结合浏览器调用Excel.Application完美实现图表数据导出至Excel。 highcharts图表数据的保存我们知道的有很多种,最常见的是以下3种: 1、导出成为图片文件:...

小白兔灰太狼 ⋅ 2014/05/16 ⋅ 0

网页版电子表格控件tmlxSpreadsheet免费下载地址

tmlxSpreadsheet 是一个由JavaScript 和 PHP 写成的电子表格控件(包含WP插件, Joomla插件等等).。 程序员可以容易的添加一个类似Excel功能的,可编辑的表格功能到自己的Web应用中。 目前有一些...

yidongkaifa ⋅ 2014/10/24 ⋅ 0

华创网表v6.8无捆绑官方正式版

华创网表是一款可多用户同时使用的网络版的Excel。可以实现Excel数据网上共享,信息互通。功能介绍:1、B/S架构只需选一台电脑充当服务器安装本平台,其它电脑、手机、iPad等通过浏览器即可连...

相心的泪 ⋅ 2016/08/25 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java Web如何操作Cookie的添加修改和删除

创建Cookie对象 Cookie cookie = new Cookie("id", "1"); 修改Cookie值 cookie.setValue("2"); 设置Cookie有效期和删除Cookie cookie.setMaxAge(24*60*60); // Cookie有效时间 co......

二营长意大利炮 ⋅ 今天 ⋅ 0

【每天一个JQuery特效】淡入淡出显示或隐藏窗口

我是JQuery新手爱好者,有时间就练练代码,防止手生,争取每天一个JQuery练习,在这个博客记录下学习的笔记。 本特效主要采用fadeIn()和fadeOut()方法显示淡入淡出的显示效果显示或隐藏元...

Rhymo-Wu ⋅ 今天 ⋅ 0

Spring JDBC使用方法

普通实现: 1、创建数据表customer。 可以使用任何数据库实现,在项目中要引入相应数据库驱动包并配置相应数据库连接。 2、创建Customer pojo。 Customer类的属性对应数据库的属性,除了为每...

霍淇滨 ⋅ 今天 ⋅ 0

Contos 7 安装Jenkins

Jenkins是一款能提高效率的软件,它能帮你把软件开发过程形成工作流,典型的工作流包括以下几个步骤 开发 提交 编译 测试 发布 有了Jenkins的帮助,在这5步中,除了第1步,后续的4步都是自动...

欧虞山 ⋅ 今天 ⋅ 0

revel

revel install go get github.com/revel/revelgo get github.com/revel/cmd create new app revel new git.oschina.net/zdglf/myapp run app revel run git.oschina.net/zdglf/myapp ot......

zdglf ⋅ 今天 ⋅ 0

49. Group Anagrams - LeetCode

Question 49. Group Anagrams Solution 思路:维护一个map,key是输入数组中的字符串(根据字符排好序) Java实现: public List<List<String>> groupAnagrams(String[] strs) { Map<Strin......

yysue ⋅ 今天 ⋅ 0

spring Email

使用spring发Email其实就是使用spring自己封装携带的一个javamail.JavaMailSenderImpl类而已。这个类可以当一个普通的java对象来使用,也可以通过把它配置变成spring Bean的方式然后注入使用...

BobwithB ⋅ 今天 ⋅ 0

spark 整理的一些知识

Spark 知识点 请描述spark RDD原理与特征? RDD全称是resilient distributed dataset(具有弹性的分布式数据集)。一个RDD仅仅是一个分布式的元素集合。在Spark中,所有工作都表示为创建新的...

tuoleisi77 ⋅ 今天 ⋅ 0

思考

时间一天天过感觉自己有在成长吗?最怕的是时光匆匆而过,自己没有收获!下面总结下最近自己的思考。 认识自己 认识另一个自己,人们常说要虚心听取别人意见和建议。然而人往往是很难做到的,...

hello_hp ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部