love fish大鵬一曰同風起,扶搖直上九萬里

          常用鏈接

          統計

          積分與排名

          friends

          link

          最新評論

          POI操作Excel文檔-基礎篇(轉)

          關鍵字:   poi    

          一.POI簡介

          Jakarta POI 是apache的子項目,目標是處理ole2對象。它提供了一組操縱Windows文檔的Java API

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

          二.HSSF概況

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

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

          三.開始編碼

          1 . 準備工作

          要求:JDK 1.4+POI開發包

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

          2 . EXCEL 結構

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

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

          如何讀Excel

          讀取Excel文件時,首先生成一個POIFSFileSystem對象,由POIFSFileSystem對象構造一個HSSFWorkbook,該HSSFWorkbook對象就代表了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的第一個表單第一行的第一個單元格的值寫成“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/,

          初學者如何快速上手使用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文件映射成我們熟悉的結構,諸如Workbook、Sheet、Row、Cell等,它把整個結構以一組對象的形式保存在內存之中,便于理解,操作方便,基本上能夠滿足我們的要求,所以說這個一個不錯的選擇。

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

          主站蜘蛛池模板: 随州市| 固阳县| 香格里拉县| 扎兰屯市| 邮箱| 光山县| 香河县| 清新县| 塘沽区| 夏津县| 曲水县| 五原县| 湖州市| 鹰潭市| 惠来县| 衡东县| 盘锦市| 苏尼特左旗| 班戈县| 屏山县| 中宁县| 靖边县| 类乌齐县| 东乡族自治县| 宁津县| 抚顺市| 鄂托克前旗| 阿城市| 玉龙| 玉门市| 孟州市| 鲜城| 白水县| 伊金霍洛旗| 南开区| 永州市| 赤峰市| 缙云县| 大方县| 白河县| 阳高县|