隨筆-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

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


          網站導航:
           
          主站蜘蛛池模板: 公主岭市| 扶沟县| 克拉玛依市| 兴文县| 昌都县| 安顺市| 庐江县| 贵南县| 泰州市| 新乡县| 孟村| 闽侯县| 庐江县| 开原市| 来安县| 韩城市| 贡山| 内丘县| 鲜城| 宣武区| 屯留县| 灵丘县| 拜城县| 玉溪市| 靖安县| 秀山| 威远县| 莲花县| 六盘水市| 大渡口区| 海盐县| 西和县| 万州区| 东城区| 博爱县| 靖远县| 余江县| 淮滨县| 长阳| 抚松县| 新宁县|