隨筆-7  評論-0  文章-0  trackbacks-0
          鑒于windows操作系統及office辦公平臺,在個人桌面上的壟斷地位,使得excel/word/ppt等文件被廣泛應用。通過java讀 寫excel文檔是編程開發中常見問題,比如在swing和web應用中經常遇到。目前通過Java操作Excel的類庫大致有[1]:
              1、POI,大名鼎鼎的Apache上的項目。
              2、Java Excel API(亦簡稱jexcelapi或jxl),純java的excel開發包。
              3、jexcel,jxl的衍生品,適宜于Swing開發。
              4、jxls,依賴于POI,基于excel模板的可定制化報表輸出工具。
              5、Jacob (Java COM Bridge),顧名思義,是采用橋接方式訪問COM組件及Win32類庫。
              6、其它方式,如數據導出到html格式的表格中,再另存為xls文檔

              使用比較
              POI、jxl、jexcel可以劃歸為一類,通過java封裝了Excel的操作,所以需要折騰Workbook,Sheet,Cell等對象,顧及excel的每個細節。這種方式,優點是功能強大。缺點是代碼冗長拖沓,閱讀困難。
              jxls雖然是基于POI,但其最大突破在于預先定制好Excel模板(如字段、格式、圖表等),運行期綁定數據即可呈現多樣化報表。其優點是編程輕松,功能靈活方便。缺點是對于過于動態化報表不太適用(如輸出字段、格式非常多變)。
              Jacob和COM模型粘在一起,自然被純java的擁躉者所不顧。所以,應用不是很廣。
           

              jxls初體驗

              業務部門經常需要我們技術部給推送一些定期報表,這些報表的字段及格式都是預定義好的。顯而易見,在這種場合,jxls是再適合不過的工具了。只要定義好 輸出報表的模板,綁定查詢出的數據即大功告成。日常維護起來也很方便,比如加減字段、改變展現方式、嵌入excel自動圖表等都能輕松搞定。
              百聞不如一見,從jxls主頁[5]上下載了jXLS v.0.9.6(不知何故,自20080409日后沒有再更新),安裝起來運行其中自帶的范例。自帶范例可以通過maven來編譯,偶試了試編譯成功,但 不知道怎么運行范例。后來沒轍,把范例導到eclipse中進行編譯運行。編譯時下載了最新的poi-3.2-FINAL-20081019.jar,結 果編譯成功,但運行報錯
              java.lang.NoSuchMethodError: org.apache.poi.hssf.usermodel.HSSFCell.setEncoding(S)V
              后來換成poi-3.1-FINAL-20080629.jar,又報別的錯,最后好不容易從CSDN上下載了poi-3.0.1-FINAL- 200705.jar,總算運行成功。體驗了一下,效果非常好。讓人不解的是,在POI主站上只能下載到最新的POI3.2版本,老版本就是找不到。

              參考資料
              1、http://schmidt.devlib.org/java/libraries-excel.html,java操作Excel的類庫清單
              2、http://jakarta.apache.org/poi/,POI主頁
              3、http://www.andykhan.com/jexcelapi/index.html,jxl主頁
              4、http://www.teamdev.com/jexcel/index.jsf,jexcel主頁。
              5、http://jxls.sourceforge.net/,jxls主頁
              6、http://jacob-project.wiki.sourceforge.net/,Jacob主頁

          posted on 2009-07-14 11:24 sillyha 閱讀(2614) 評論(0)  編輯  收藏 所屬分類: others

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 晴隆县| 同江市| 曲麻莱县| 界首市| 迭部县| 巧家县| 灌云县| 淳化县| 庆安县| 舒兰市| 蕉岭县| 揭西县| 双桥区| 泽库县| 靖州| 龙里县| 镇原县| 毕节市| 新龙县| 汝州市| 赣州市| 海淀区| 迭部县| 广丰县| 太仓市| 武鸣县| 通州区| 固始县| 伊宁县| 金溪县| 阿克苏市| 敦煌市| 武安市| 铜陵市| 长寿区| 罗平县| 桐梓县| 越西县| 永川市| 洞口县| 南安市|