开源报表却越来越受到程序员热烈追捧,如ireport、 Jsper report、jfreechart这样的免费,开源的JAVA报表工具,在一下开源的JAVA报表相关的论坛里面都是热火朝天,发问者众多。发现都会有利有弊,近因为公司需求的原因,我上网查找了好多报表工具和试用体验,下面是我向大家推荐5个开源报表工具。
1.iReport
iReport是为JasperReports设计的强大的,直观的,易于使用的可视化报表设计器,用Visual J++为Win32平台编写。iReport允许用户可视化地编辑XML JasperDesign文件,可以和其它数据库通过JDBC通信。在设计模板时可以以Html、Excel、Pdf等多种方式进行预览;用它生成的文件有.jrxml、.jasper两种文件,其中.jrxml就是我们设计时可视化编辑的xml文件,.jasper是经过编译.jrxml后生成的类文件,也就是我们最终在项目中用的报表模板文件。
2. JasperReport
JasperReports是一个基于Java的开源报表工具,基于GPL开源许可协议, 完全采用java编写, 支持多种数据源,可打印或导出多种文件格式,支持PDF、HTML、XLS、CSV和XML文件输出格式。JasperReports是当前Java开发者最常用的报表工具。
JasperReport也包含多个组件:
JasperReports Library 开源报表引擎库
JasperReports Server 是一个独立可嵌入的报表服务器,对数据进行分析和提供定时任务服务。
Jaspersoft Studio 是基于Eclipse的报表设计器,它能创建包含图表、图像、子报表、交叉表等复杂的报表。数据源可以是JavaBeans,XML,CSV Hibernate。
Jaspersoft ETL 是易于部署和执行的开源ETL系统, 创建一个综合的数据仓库和数据集。
iReport是为JasperReports设计的强大的,直观的,易于使用的可视化报表设计器,采用纯Java开发。这个工具允许用户可视化编辑包含charts,图片,子报表等的复杂报表。
**
3、jfreechart**
JFreeChart 是一款易于扩展的纯Java编写绘图图库, 使用它可以生成线图、柱状图、饼图、曲线图、面积图、甘特图、仪表盘、混合图等多种图表,并可将图表输出为PNG、JPEG图片。
稳定、轻量级,支持多种图表类型
一个灵活的设计,很容易扩展,并应用于服务器端和客户端的应用程序
支持多种输出类型,包括Swing组件和JavaFX组件、图像文件(包括PNG和JPEG)和矢量图形文件格式(包括PDF、EPS和SVG)
JFreeChart是开源的,基于GNU通用公共许可证 (LGPL)开源许可协议
这里要强调的是:iReport-0.5.0中集成了jasperreports-0.6.7、jfreechart-0.9.21,所以用iRepot-0.5.0就完全可以开发报表了,但在iReport中进行图形统计报表的开发没有采用,而是直接引用其组件包进行自己手写类来开发的(因为对图形统计图的开发iReport支持的并不好)
4、Pentaho
Pentaho将你所有的数据转变成有意义的信息,为您设计Pentaho报表,一套开源的工具,允许你创建完美的报表,支持输出Excel、PDF、HTML、文本、富文本文件,XML和CSV,生成的报表可以很容易地从各种来源提炼成可读的数据。
Pentaho报表的开发是通过创建一个灵活且简单易用的报表引擎。这是一套开源工具,包括Report Designer、Reporting Engine和Reporting SDK。
5、BIRT
BIRT 是基于 Eclipse 的一款开源报表,创建数据的可视化和报表,可以嵌入到富客户和Web应用程序。
BIRT主要由两部分组成:一个用于创建BIRT设计的可视化报表设计器,以及可以部署到任何java环境运行时组件。BIRT项目还包括一个图表引擎,可集成到BIRT的一个应用程序图表。
BIRT设计模板保存为XML,可以访问多个不同的数据源包括JDO数据存储,jfire脚本对象、POJOs、SQL数据库、Web服务和XML。
报表方面目前测试做些简单的行式、分组交叉类报表还比较容易,稍微复杂点可能做起来有点麻烦(比如多数据集取数方面有点没搞懂,还未测试),这点实际和没有完善的学习文档有关,不方面查找。
统计图方面,常用的柱图、饼图、折线都提供,但其他的种类就相对少了,另外图形有点老,看着不够高大上,只能说有此功能了。
补充一点,本人是作为一个开发人员来测试birt,对eclipse熟悉,所以上手感觉还可以,但对于只是有sql基础、简单了解java或jsp开发的就来搞birt的话,还是会有很多问题。 Ps:这个就看领导们安排什么水平的员工来开发报表了。
以上是常用的 JAVA 开源报表开发软件,之所有选择它们是因为有专业的报表软件、纯JAVA的、有专业论坛提供大家资源分享、免费(这是最重要的)、用起来更为灵活。综上所述决定性因素只有应该:免费、灵活。
那么报表软件,到底免费与收费孰优孰劣?
首先,免费的java报表开发能给我们带来什么?答案显而易见:拥有了一定可用性的报表软件;开源的代码能够拥有灵活的可定制能力和完全的控制;最重要的是免费。但是开源工具都有个通病,就是开发和维护成本比较大,如果你企业想上报表工具,怎么也得招/培养2、3个开发人,而且学习资料多为英文。而且Jsper report、ireport的所有帮助文档是收费的,文档倒是相当细致,需要花大量的时间阅读。这才明白:所谓开源不可能真的有人那么无聊为人民服务,说白了还是要挣钱的,否则产品的后续研发怎么办?
而且Jsper report、ireport的制表能力实在一般,老外的东西,本质上就不符合咱的报表习惯,报表似乎就该这么做,做不出来的报表似乎就应该写程序、写代码,最后用工具的结果还是去写代码,还不如不用呢。
另外,在论坛里,像“请教高手某某问题如何解决”这类的帖子比比皆是。首先解决问题的时效性不高,需要等待不能即时被答复,而且也不一定有人能遇到过同样的问题,并愿意热心帮你解决,这时就会干着急,希望有人技术支持一下。其实仔细算算,花在这些问题上的时间成本、人工成本,还不如买一个收费的工具?
选择收费的报表软件
首先在你有问题的时候能找专业的java报表厂商支持你,不用在论坛里发些的不一定有准确答复的求问贴了,更有甚者可以叫厂商直接帮你做部分表。做事是讲究效率的,与其浪费时间去自学开源工具的文档,还不如边学边做不懂就直接问报表工具厂商。这样能更顺利高效的完成项目。
我以前的公司做项目时老板就是不肯花钱,以为是省钱,结果,由于不能及时完成折了好几个项目。所以,再碰上选择报表软件的时候,一定不要怕跟老板倾诉: 报表制作其实是很专业的的活,花钱买一个工具比用开源工具划算。
下面的商业报表工具,其实成本算下来也无差,产品提供部署服务,可以走项目,后期还有技术维护。
商用报表工具:
1、XJR快速开发平台报表工具
使用多年钻坚研微的成熟稳定的第三方插件,提供大量标准报表模板,满足各行业不同的需要。使用简单,会数据库就可以用。不需要再出报表授权费用。还有很重要的一点就是已经集成在开发平台内不需要再做整合。XJR快速开发平台融合了时下最实用的web及互联网应用技术,集成多类业务场景。面向服务/接口设计,可轻松集成或集成到外部系统,轻松整合企业现有资源。
价格平民,功能实用,符合中国国情的报表需求;
开发上手快,不需要专业人员,会数据库就可以用。
2、帆软报表
功能较为齐全,适应大多数行业的功能,
价格较贵,基础版价格:80000元/ 服务器,高级版价格:500000/服务器
3、 水晶报表CrystalReport
SAP公司的商业报表工具,作为SAP“集团”下的报表组件模块。10年事前盛行一时,后被SAP收购。但水晶报表(Crystal Report)在理论上只支持单数据集,对多集的支持依赖于数据库的运算能力(叉乘与联合等或写存储过程),多库一般难以支持。
4、 cognos IBM Cognos Business Intelligence
Cognos功能是很强大的,但是操作的复杂度比较高。如果是普通的列表,操作确实也简单,如果是格式复杂或者是统计数据来源表比较多的时候,至少对于我这样的新手来说,操作起来就没那么得心应手。
5、其他:例如Oracle的BIEE算是商用BI工具,包括在商业智能方案里。国产的还有润乾、斯迈特等等,不多赘述。
一句话总结:
商用>开源,开源需要很强的代能力,项目上线时间长,容易不稳定,后续维护需要不停改代码。
国产>国外,这一点上不要“崇洋媚外”了,事实证明,国产报表更懂表格表姐的心。
不管选择哪类工具,最重要的还是满足业务需求,在满足的前提下寻找合适的工具。