近一年都在处理报表问题,调研了不少报表工具,也开发了适合公司业务的报表应用。分享一些关于如何选择报表工具的个人观点,希望对你有参考作用。
对于大部分企业来说,能花时间和人力去开发应用来快速解决问题的,肯定不会花大钱去购买商业产品。大部分老板会说,怎么又要买软件啦?现在企业日子不好过,能省则省。IT应用不像Excel、PS,网上下道版即可,像报表工具这种是系统,要和业务系统连接,要做接口开发。所以要么是用开源工具去自己研发和组装,要么就是采购一套成熟、稳定的商用产品。
第一个选择:商用报表产品
目前市场上功能强大,提及率高的两款 Java 报表工具,水晶报表和商业报表。
1、水晶报表的特点
老牌报表软件,现在收于SAP麾下了。从12版本发布到16版本,现在因为水晶报表为SAP 服务,所以更加注重数据分析,而不注重报表易于设计。
① 支持常用的数据库 Access, Excel,XML 文件,OLE DB驱动,ODBC 驱动,JDBC 驱动的任意数据库,SalesForce数据等。
② 设计器风格同 Word 编辑器的风格,多了数据源管理等窗口。习惯使用Word编辑器的用户,可以快速上手。设计器只支持一种报表类型,按照区域划分的报表类型,将报表分为不同的保镖头,页眉详细数据区域,报表尾,页脚。
③ 水晶报表:提供交叉表控件,OLAP报表控件,可以创建于Excel 中类似的单维度和多维度数据透视表。但灵活性不强,只能创建单表头的数据透视表。无法修改或添加总计,汇总公式,或是自定义单元格合并。更无法支持中国复杂报表的表角斜线及无规则的单元格合并。
④ 报表需求无论变化多么微小,都需要在修改后重新编译部署整个项目,所以在后期维护成本是非常大的,并且没有单独的设计器提供给最终用户新增报表。
⑤ 因为现在属于SAP 公司下的报表工具,在国内没有专门的技术服务团队,相关资料以及服务支持是英文的。因此可能在寻找技术支持过程中会比较耗费时间。而且无法通过直接的沟通来解决,如电话,会议,现场培训等。另外官方网站也是在国外,因为网络问题,件我折腾了10多个小时。
2、帆软报表的特点
①是一款纯Java编写的设计复杂的中国式报表,拖拽式操作替代写代码,搭建数据决策分析系统上手简单,不懂代码只需写SQL也可以通过类excel设计器制作出报表。
②支持常用关系型数据库包括Oracle、sql sever、DB2、My SQL等,还有Essbase、ssas、sap数据集、hadoop大数据平台。
③普通报表、决策报表、聚合报表,基本覆盖明细/分组/交叉/分页/分栏树报表、可视化dashboard、大屏、复杂中国式大聚合报表。报表制作底子很成熟,功能强大,覆盖的行业广,基本能满足所有的报表需求。
④报表页面美观、炫酷,可基于插件方式进行定制,也一直在培育众包市场。
⑤售后做的挺好,QQ客服反馈快,文档和社区做的还可以,有各种围绕数据的课程培训,基本都免费
⑥功能做的太细,有些功能点显得比较死板。比如,需要页眉页脚高度不统一、需要较小行间距、单元格字体自动缩放...
⑦性价比还可以,了解过大概,围绕功能模块几万~几十万不等。
第二个选择:自研
自研复杂的报表工具,一类是使用现成的开源报表工具如JasperReport 、OpenReport,但会遇到一些难题,如:打印报表;复杂的数据计算;复杂格式的报表展示;页面、打印、导出word、pdf、excel格式一致性;图表...
另一类是使用一些java组件进行组合开发,比如前端图表库、pdf 操作组件库......
1、Java报表引擎
JasperReports,配合设计器ireport使用。不是类Excel的格子设计,而是画报表,表头、页头、列头,用了几天,还是不能接受这种操作思维,见仁见智吧。使用方面和帆软比是不如它强大,不能导Excel,通常情况下只用来导PDF,但在大多数情况下还是能满足需求的,毕竟免费的不能要求太高哈。
EasyReport、ureport,同样也是开源的web端设计报表工具,可以参考部分功能实现,资料不是很多,我也没尝试,就是了解下。
然后介绍一些开源的组件库,报表开发基本是哪个拥抱报表引擎、前段图标、打印导出发邮件等空间,下面就不具体介绍,罗列一下,源码和工具在GitHub上都能搜到。
2、图表前端库
- ECharts
- Highcharts
- D3
3、Java office、pdf 操作组件库
- Apache POI
- JXL
- iText
- OpenOffice
- PDFBox
- jquery.table2excel.js
4、打印方式
浏览器自带打印及其js控件,较难干预样式,连续打印、页眉页脚,分页等存在问题
pdf流打印,需要下载adobe插件
ActiveX,java类报表工具基本不用
Applet打印,依赖jre
总结:
国内市面上还有很多报表工具,如:RDP报表、ActiveReports、简表、杰表等都可以去调研下是否适合自己业务。
国外有很多报表工具不做推荐,因为上手困难,遇到问题处理基本找不到资料,不适合中国式报表。
自研报表工具需要投入不少人力和时间去研究的,就看你时间多还是人力多还是愿意花钱解决了,单纯从工具层面角度,还是商用报表好用的,有问题也能找到人帮助。