java导出excel_纯干货:Java开源报表工具JasperReport使用

java导出excel_纯⼲货:Java开源报表⼯具JasperReport使⽤JasperReport是⼀个强⼤、灵活的报表⽣成⼯具,能够展⽰丰富的页⾯内容,并将之转换成PDF,HTML,或者XML格式。该库完全由Java写成,可以⽤于在各种Java应⽤程序,包括J2EE,Web应⽤程序中⽣成动态内容。
⾸先引⼊数据源:
块项⽬中可根据⾃⾝需要选择数据源,可以是javaBean的⽅式,也可以是jdbc数据库。本⼈在项⽬中使⽤的数据源是JDBC connection:大黄丹
数据源的选择是为了制作模板⽂件⽽使⽤
下图创建⼀个Blank A4的模板:
黄宝世
模板结构介绍:
Title:报表的表头。只在⾸页打印⼀次。
PageHeader : 报表的页⾸。 每页都打印。
ColumnHeader : 报表的⾏⾸,通常⽤来定义字段名称, 每页都打印。
Detail : 报表的内容 ,根据数量⾃动循环输出,可以添加多个。
ColumnFooter : 报表的⾏尾,可⽤来告知报表的⼀些参数,诸如页码等。每页都打印。PageFooter:报表的页尾,每页都会打印。
Summary:汇总计算⽤。
下图edit page format可编辑报表A4格式:原地掷铅球
模板制作遇到的问题
在制作类似excel样式的表格时,jasperreport只能使⽤控件⼊text Field去拼凑出类似的效果,本⼈起
初是把所有控件拼凑到⼀个detail下⾯,这样会导致⼀⾏的⽂本,在⼀个字段数据⽐较多的情况下产⽣溢出,且导致整个布局错乱。后来经过多⽅尝试把每⼀⾏数据都放到⼀个detail中,这样整体的格式就会像excel那样动态随内容扩充,⽽不影响整个页⾯的布局了:
污秽等级其中每⾏text field控件进⾏如下布局设置:
position type:fix relative to top,stretch type:relative to band height,Print When中勾选Detail Overflows, 在text field中勾选stretch with overflow。这样表格就不会因为填充数据造成错乱了。
降温系统springboot中集成jasperReport⽅案
1、l⽂件中直接引⽤下⾯的包:
jasperrepoert-fonts是本⼈对源码进⾏修改后重启打包⽣成的,因为jasperrepoert对于中⽂的⽀持不到位,需要修改相关配置,以宋体为例,到宋体ttf⽂件导⼊到jasperreports-fonts-6.5.1netsfjasperreportsfontsdejavu⽬录下,然后修改jasperreports-fonts-
6.5.1netsfjasperreportsfonts⽬录下的l⽂件,增加下图的配置即可使jasperreport导出pdf时⽀持中⽂宋体这种格式,如果读者想增加更多字体可以依据上述⽅案继续添加。
2、导出成多种格式的⽂件:
在web项⽬中,可以使⽤流的⽅式直接返回给前端流⽂件进⾏前端预览:
3、批量查看pdf功能:
通过查询源码跟踪后发现导出pdf的源码⽂件是:
public void exportToPdfStream(
JasperPrint jasperPrint,
OutputStream outputStream
) throws JRException
{
JRPdfExporter exporter = new JRPdfExporter(jasperReportsContext);
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(outputStream));
}
可以把List对象传进去,说明了可以把每个报表的模板jasperPrint对象放在参数中,下⾯是实现⽅案:
关键时刻20120920
这样就可以把多个报表⽂件同时导出或者预览了。
⼤家需要JasperReport⽅⾯资料或者更多java架构资料的可以私信我“资料”

本文发布于:2024-09-22 20:32:46,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/363232.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:报表   模板   导出   每页
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议