love fish大鵬一曰同風(fēng)起,扶搖直上九萬里

          常用鏈接

          統(tǒng)計(jì)

          積分與排名

          friends

          link

          最新評(píng)論

          POI操作Excel文檔-基礎(chǔ)篇(轉(zhuǎn))

          關(guān)鍵字:   poi    

          一.POI簡(jiǎn)介

          Jakarta POI 是apache的子項(xiàng)目,目標(biāo)是處理ole2對(duì)象。它提供了一組操縱Windows文檔的Java API

          目前比較成熟的是HSSF接口,處理MS Excel(97-2002)對(duì)象。它不象我們僅僅是用csv生成的沒有格式的可以由Excel轉(zhuǎn)換的東西,而是真正的Excel對(duì)象,你可以控制一些屬性如sheet,cell等等。

          二.HSSF概況

          HSSF 是Horrible SpreadSheet Format的縮寫,也即“討厭的電子表格格式”。 也許HSSF的名字有點(diǎn)滑稽,就本質(zhì)而言它是一個(gè)非常嚴(yán)肅、正規(guī)的API。通過HSSF,你可以用純Java代碼來讀取、寫入、修改Excel文件。

          HSSF 為讀取操作提供了兩類API:usermodel和eventusermodel,即“用戶模型”和“事件-用戶模型”。前者很好理解,后者比較抽象,但操作效率要高得多。

          三.開始編碼

          1 . 準(zhǔn)備工作

          要求:JDK 1.4+POI開發(fā)包

          可以到 http://www.apache.org/dyn/closer.cgi/jakarta/poi/ 最新的POI工具包

          2 . EXCEL 結(jié)構(gòu)

          HSSFWorkbook excell 文檔對(duì)象介紹
          HSSFSheet excell的表單
          HSSFRow excell的行
          HSSFCell excell的格子單元
          HSSFFont excell字體
          HSSFName 名稱
          HSSFDataFormat 日期格式
          在poi1.7中才有以下2項(xiàng):
          HSSFHeader sheet頭
          HSSFFooter sheet尾
          和這個(gè)樣式
          HSSFCellStyle cell樣式
          輔助操作包括
          HSSFDateUtil 日期
          HSSFPrintSetup 打印
          HSSFErrorConstants 錯(cuò)誤信息表

          3 .具體用法實(shí)例 (采用 usermodel )

          如何讀Excel

          讀取Excel文件時(shí),首先生成一個(gè)POIFSFileSystem對(duì)象,由POIFSFileSystem對(duì)象構(gòu)造一個(gè)HSSFWorkbook,該HSSFWorkbook對(duì)象就代表了Excel文檔。下面代碼讀取上面生成的Excel文件寫入的消息字串:

          代碼
          1. POIFSFileSystem fs=newPOIFSFileSystem(new FileInputStream("d:\test.xls"));    
          2. HSSFWorkbook  wb = new HSSFWorkbook(fs);    
          3.   } catch (IOException e) {    
          4.   e.printStackTrace();    
          5.   }    
          6.   HSSFSheet sheet = wb.getSheetAt(0);    
          7.   HSSFRow row = sheet.getRow(0);    
          8.   HSSFCell cell = row.getCell((short0);    
          9.   String msg = cell.getStringCellValue();   

           

          如何寫excel,

          將excel的第一個(gè)表單第一行的第一個(gè)單元格的值寫成“a test”。

          代碼
          1. POIFSFileSystem fs =new POIFSFileSystem(new FileInputStream("workbook.xls"));    
          2.   
          3.     HSSFWorkbook wb = new HSSFWorkbook(fs);    
          4.   
          5.     HSSFSheet sheet = wb.getSheetAt(0);    
          6.   
          7.     HSSFRow row = sheet.getRow(0);    
          8.   
          9.     HSSFCell cell = row.getCell((short)0);    
          10.   
          11.     cell.setCellValue("a test");    
          12.   
          13.     // Write the output to a file    
          14.   
          15.     FileOutputStream fileOut = new FileOutputStream("workbook.xls");    
          16.   
          17.     wb.write(fileOut);    
          18.   
          19. fileOut.close();   

           

          4 . 可參考文檔

          POI 主頁:http://jakarta.apache.org/poi/,

          初學(xué)者如何快速上手使用POI HSSF

          http://jakarta.apache.org/poi/hssf/quick-guide.html 。

          代碼例子 http://blog.java-cn.com/user1/6749/archives/2005/18347.html

          里面有很多例子代碼,可以很方便上手。

          四.使用心得

          POI HSSF 的usermodel包把Excel文件映射成我們熟悉的結(jié)構(gòu),諸如Workbook、Sheet、Row、Cell等,它把整個(gè)結(jié)構(gòu)以一組對(duì)象的形式保存在內(nèi)存之中,便于理解,操作方便,基本上能夠滿足我們的要求,所以說這個(gè)一個(gè)不錯(cuò)的選擇。

          posted on 2007-11-14 22:26 liaojiyong 閱讀(2111) 評(píng)論(0)  編輯  收藏 所屬分類: POI

          主站蜘蛛池模板: 陈巴尔虎旗| 揭西县| 繁峙县| 新安县| 桑植县| 勃利县| 永宁县| 杂多县| 汝州市| 凤翔县| 阜新| 云浮市| 嘉义县| 泰顺县| 武陟县| 纳雍县| 内黄县| 祁东县| 拜泉县| 慈溪市| 驻马店市| 商河县| 翁源县| 泾阳县| 惠水县| 台东县| 张北县| 航空| 扶沟县| 贞丰县| 衢州市| 双辽市| 玛多县| 阜平县| 清苑县| 昌乐县| 巴马| 会昌县| 德化县| 岚皋县| 孝义市|