开发中流行的报表工具

1,410 阅读9分钟

流行的报表工具

1️⃣ 帆软报表

帆软作为报表行业的老大,存在时间也比较久,报表的功能相当强大,无论是复杂分组报表、交叉报表、带条件查询报表,还是大屏,帆软都可以轻松实现。

官方文档:help.fanruan.com/finereport/

优点

① 国内老牌企业,功能健全

帆软报表在国内的占比还是比较可观的,针对国内的一些比较常见的复杂报表做了非常大的创新,基本上只要你会Excel,用帆软做个报表没什么困难。

② 功能丰富,基本上市面上有的功能都有

  • 上面集成了很多可视化控件,一些常见的仪表盘,柱形图,折线图,雷达图,文字云等等都有现成的,直接拖就可以用了。
  • 同时支持在线填报,你如果要做个在线收集信息的表单,分分钟就搞定了。
  • 表单套打、FVS 3D大屏等

具体功能可以看官方文档

缺点

① 组件都是预设好的且使用需另外收费

所有的控件都是预设好的,你只能用现有的,当然帆软也有它的市场,但是市场里的那些控件真的好看的没几个,而且还都是另外收费的。

② 收费按模块收费

收费这方面,帆软是按照模块收费的,一整套软件被分为了6大模块,每个模块都可以单独销售,但是一般买他家的软件都是6个都得买才行。

这种销售策略见多了,先让你用几个必备的,让你觉得买的超值便宜,等哪天你想要其他几个模块,还是得找它买,只是延期付全款而已。

而且吧,这个销售价格非常的不统一,一般像国外的厂商卖软件,很少会有优惠,他家倒好,只要你买,我可以给你打到骨折。

但骨折也不是没有前提的,通常是和实施费用捆绑销售,软件可以少赚点,我再从这实施费用上补回来就是了,好一个连环套。

它的报表和BI产品是分开的,报表的功能比较强大,BI产品做的那是真的比较简陋。唯一的亮点就是操作简单,支持联动和钻取。

文章来源:帆软报表,今天好好吐槽一下你

2️⃣ 积木报表(GitHub高星)

官网地址:JEECG

一款免费的数据可视化报表,含报表和大屏设计,像搭建积木一样在线设计报表!功能涵盖,数据报表、打印设计、图表报表、大屏设计等!

  • Web 版报表设计器,类似于excel操作风格,通过拖拽完成报表设计。
  • 秉承“简单、易用、专业”的产品理念,极大的降低报表开发难度、缩短开发周期、节省成本、解决各类报表难题。
  • 领先的企业级Web报表软件,采用纯Web在线技术,专注于解决企业报表快速制作难题。

快速体验: www.jimureport.com

项目开源,但是jimuReport本身的代码不开源,能否据此实现二次开发,有待考究

优点

① 简易美观

界面美观,操作简单,上手容易,支持Excel表格

② 支持集成

image-20220721112325589

③ 表单套打

来源:积木报表

  • 支持打印设计(支持套打、背景打印等)可设置打印边距、方向、页眉页脚等参数 一键快速打印 同时可实现发票套打,不动产证等精准、无缝打印

制作好复杂表单

翀1

画好样式后,就需要调用接口拿数据了,积木报表支持以下数据源形式

翀2

这里我使个懒使用JSON数据集

{     "data": [         {             "ctotal": "125箱",             "cname": "牛奶0",             "cprice": "56",             "riqi": "2022年10月21日",             "id": "1",             "dtotal": "1256箱",             "tp": "7000",             "ztotal": "589箱",             "cnum": "每箱12瓶"         },         {             "ctotal": "126箱",             "cname": "牛奶1",             "cprice": "56",             "riqi": "2022年10月21日",             "id": "1",             "dtotal": "1256箱",             "tp": "7000",             "ztotal": "589箱",             "cnum": "每箱12瓶"         }     ] }

翀3.png

此时数据集中的字段就已经出现了,接下来就是拖拽了

image-20220721102554953

图片的最后可以看到我将#改为了$,这么做的原因是:如果使用#则是遍历数据中的每一项,而使用$则是只取一项

翀7.png

④ 快速实现数据大屏

image-20220721105935626

⑤ 可选版本多样

涵盖的技术范围跨度大,可适应性强,集成度高,可根据需求挑选对应的技术版本

image-20220721110151260

image-20220721112057705

⑥ 拥有企业级的低代码平台

源码公开: jeecg-boot

image-20220721105220680

⑦ 支持SQl语句

只是复杂SQL,允许使用SQL函数及存储过程

存储过程及函数配置

image-20220721150729860

⑧ 数据集支持丰富

  • 添加的数据集按数据集类型分为:SQL数据集和API数据集;
  • 按数据量多少分为:对象数据集和集合数据集;
  1. SQL数据集配置
  2. API数据集配置
  3. JavaBean数据集配置
  4. 对象数据集配置
  5. JSON数据集配置
  6. Redis数据集
  7. MongoDB数据集

image-20220721150259851

缺点

暂时了解不多,不太清楚有什么缺点,因为新的低代码平台,好像解决了很多以前的一些缺点和不足,(查到的资料都是一两年前的),以SQL语句的支持以及一些函数处理为例,现在新的低代码平台是完全支持的,具体可以进github上看看项目功能的描述

集成积木报表

1、将积木报表集成至自己项目,教程链接:report.jeecg.com/2078875

2、访问积木报表,访问地址:{项目前缀}/jmreport/list

3、进入打印设计,新建报表

4、根据业务设计Excel样式,eg:

翀1

积木报表对比帆软报表对比

可看这篇:积木报表对比帆软报表有哪些区别?

明显的数据源上的差别

  • 帆软报表支持JDBC方式和JNDI两种连接方式,用法也比较简单,配置驱动,URL以及用户名、密码即可。但是帆软报表支持在数据源连接界面直接设置数据库连接池的相关属性,无需再去配置文件中设置,这点比较方便。
  • 积木报表除了支持JDBC方式和JNDI,还支持API方式,用户可以灵活选择配置方式。

3️⃣ UReport2(两年没维护)

UReport2是一款高性能的架构在Spring之上纯Java报表引擎,通过迭代单元格可以实现任意复杂的中国式报表。 在UReport2中,提供了全新的基于网页的报表设计器,可以在Chrome、Firefox、Edge等各种主流浏览器运行(IE浏览器除外),打开浏览器即可完成各种复杂报表的设计制作。

UReport2是第一款基于Apache-2.0协议开源的中式报表引擎。

学习资料:m.w3cschool.cn/ureport/ure…

优点

轻量级、易集成,工程中添加依赖即可进行集成使用;

  • 支持多函数处理,包括常用函数(sum、count、max、min、avg)、数学函数、字符串函数、日期函数等等;
  • 支持多种图表展示,包括饼状图、柱状图、曲线图、圆环图、雷达图、散点图等等;

缺点

  • 工程在使用过程中经常出现空指针或者其他报错;
  • UReport2部分功能不可用,包括导出及多条件表达式SQL查询等;
  • 支持数据源类型少,当前支持:mysql、SQLserver、oracle、db2等
  • 目前项目已经两年没有维护更新了

正在维护的改良版UReport2

① UReport-kepp

gitee地址:gitee.com/summer-T/ur…

相当于是一个Springboot版的UReport2

image-20220721164640281

② J2eeFast

整合ureport,报表分享、添加数据权限、视图权限、系统字典配置、设置sql语句自动分页、优化查询设计器,后期将引入echarts图形库展示。

image-20220721164707556

image-20220721164106043

ureport2和积木报表的对比

ureport2和积木报表的区别

仅做参考,表格来自上一年积木官方,现在的积木报表基本上大部分表格中不支持的功能积木报表已经完善了(如:SQL表达式的支持,函数处理等,现版本的积木都已经完善了的,)

image-20220721094555084

4️⃣ JasperReports

官网:community.jaspersoft.com/community-d…

  1. 在开源的JAVA报表工具中,JASPER Report发展是比较好的,比一些商业的报表引擎做得还好,如支持了十字交叉报表、统计报表、图形报表,支持多种报表格式的输出,如PDF、RTF、XML、CSV、XHTML、TEXT、DOCXI以OpenOffice。
  2. 数据源支持更多,常用JDBC SQL查询、XML文件、CSV文件、HQL (Hibernate查询),HBase,JAVA集合等。还允许你义自己的数据源,通过JASPER文件及数据源,JASPER就能生成最终用户想要的文档格式。

JasperReports介绍

JasperReports是程序员最受欢迎、最常用的开源报表工具,常和ireport一起搭配使用,可以在Java环境下制作报表,支持PDF、HTML、XLS、CSV和XML文件输出格式。

具体的可以看:JasperReports工具介绍

优点

  1. 开源软件,给开发者带来很大便利,iReport弥补JasperReport画报表的缺陷
  2. ETL、OLAP和服务器组件提供了良好的企业环境,更易于现有的IT体系结构进行集成
  3. 有优秀的文档、wiki和其他资源的支持,可以支持win、Linux和Mac系统
  4. 免费软件,但是文档需要购买。

缺点

  1. 需要编程或编辑xml来生成报表,学习门槛比较大
  2. 不是格子化的编辑模式,复杂报表的操作复杂度高,多数功能还需借助代码实现
  3. 不支持多源,一张报表数据只能来自一个数据源
  4. 应对需求变化时的能力极差
  5. 更新周期长,遇到bug类问题,只能选择放弃

使用案例

使用JasperReport报表工具,做出Java项目报表打印功能

Jasperreport 报表开发

特别手段:导出word文档

纯前端导出word文档

Powerful Word, Powerpoint and Excel generation:强大的Word Powerpoint和Excel生成功能,使用Javascript从你的应用程序中生成docx, pptx或xlsx

官方传送门:docxtemplater

导出word

image-20220721143421719

导出ppt

image-20220721143436243

实操案例

案例:vue + docxtemplater 实现前端生成并下载word

案例:纯前端vue利用docxtemplater实现生成word文档下载 word模板,勾选框的默认勾选