開源報表卻越來越受到程式員熱烈追捧,如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工具,包括在商業智能方案裡。國産的還有潤乾、斯邁特等等,不多贅述。
一句話總結:
商用>開源,開源需要很強的代能力,項目上線時間長,容易不穩定,後續維護需要不停改代碼。
國産>國外,這一點上不要“崇洋媚外”了,事實證明,國産報表更懂表格表姐的心。
不管選擇哪類工具,最重要的還是滿足業務需求,在滿足的前提下尋找合适的工具。