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

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

              jxls初體驗

              業(yè)務(wù)部門經(jīng)常需要我們技術(shù)部給推送一些定期報表,這些報表的字段及格式都是預(yù)定義好的。顯而易見,在這種場合,jxls是再適合不過的工具了。只要定義好 輸出報表的模板,綁定查詢出的數(shù)據(jù)即大功告成。日常維護(hù)起來也很方便,比如加減字段、改變展現(xiàn)方式、嵌入excel自動圖表等都能輕松搞定。
              百聞不如一見,從jxls主頁[5]上下載了jXLS v.0.9.6(不知何故,自20080409日后沒有再更新),安裝起來運行其中自帶的范例。自帶范例可以通過maven來編譯,偶試了試編譯成功,但 不知道怎么運行范例。后來沒轍,把范例導(dǎo)到eclipse中進(jìn)行編譯運行。編譯時下載了最新的poi-3.2-FINAL-20081019.jar,結(jié) 果編譯成功,但運行報錯
              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 閱讀(2618) 評論(0)  編輯  收藏 所屬分類: others

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 柳河县| 龙陵县| 南江县| 通榆县| 张家口市| 阜康市| 西丰县| 旺苍县| 涿州市| 会昌县| 喜德县| 承德市| 麦盖提县| 瑞昌市| 金川县| 通海县| 饶平县| 晋宁县| 济源市| 洪洞县| 灵台县| 万山特区| 郎溪县| 哈密市| 九龙坡区| 五莲县| 高尔夫| 嘉祥县| 洛川县| 宝应县| 甘德县| 福鼎市| 静宁县| 定襄县| 临海市| 城口县| 安多县| 嵩明县| 改则县| 平昌县| 革吉县|