Apache POI 介紹
Apache POI 是一套用於訪問微軟 Office 格式文檔 (Word, Excel and PowerPoint) 的 Java API。其中用於操作 Excel 格式檔案的 API 是 HSSF,用於操作 Word 格式檔案的 API 是 HWPF 以及用於操作 PowerPoint 格式檔案的 API 是 HSLF。
POI 的官方網站是 http://poi.apache.org,使用者可以先從這裡下載最新的版本 3.6, 下載解壓后里面有三個 jar 包(poi-3.6-20091214.jar,poi-contrib-3.6-20091214.jar 和 poi-scratchpad-3.6- 20091214.jar)將這三個 jar 包拷貝至 Eclipse 工程的 lib 目錄中,然後重新整理工程即可載入 POI 的類庫。
POI 主要組成部分
POIFS:POIFS 是該項目的最古老,最穩定的一部分,它同時支援讀寫功能,所有的組件最終都依賴於 它的定義。
POIFS 對於 OLE 2 檔案操作: POIFS 的基礎是最古老和最穩定的項目的一部分。這是我們的 OLE 2 複 合文檔格式的純 Java 實現。它同時支援閱讀和書寫功能。我們的組成部分都最終依賴於它的定義。更多資訊請參閱 POIFS 項目頁。
HSSF 對於 Excel 檔案操作:HSSF 是針對 Microsoft Excel 97(-2003)檔案格式(BIFF8)的文檔操作 的純 Java 實現。它支援閱讀和書寫能力。更多資訊請參閱 HSSF 項目頁。
HWPF 對於 Word 檔案操作:HWPF 是針 對 Microsoft Word 97 檔案格式的文檔操作的純 Java 介面。該組件是在發展的初期階段,對 word 文檔的讀寫能力有限 ,僅僅可以閱讀和書寫簡單的 word 檔案,更多資訊 HWPF 請參閱 HWPF 的項目頁。
HSLF 對於 PowerPoint 檔案操 作:HSLF 是針對 Microsoft PowerPoint 97(-2003)檔案格式的文檔操作的純 Java 介面。它支援閱讀和書寫能力。更多 資訊請參閱 HSLF 項目頁。
HDGF 對於 Visio 檔案操作:除此之外 POI 還提供了 HDGF 對微軟 Visio97(-2003) 檔案格式的文檔操作的純 Java 介面。它目前只支援讀取操作,在一個很低的水平,只支援簡單的文本提取。更多資訊請參 閱 HDGF 項目頁。
HPSF 文件屬性:HPSF 是這對 OLE 2 設定格式的純 Java 介面。主要是用來隱藏檔的屬性集( 如:標題,作者,最後修改日期等屬性),他們可以為特定應用目的所使用。更多資訊請參閱 HPSF 項目頁。
下面 我們簡單的介紹一下項目中經常會使用到的對於 Excel 和 Word 格式檔案進行操作的介面:
HSSF 介面
目前 POI 比較成熟的部分是 HSSF 介面,處理 MS Excel(97-2003)對象。它不像我們僅僅使用 csv 產生的沒有格式的可以由 Excel 轉換的東西,而是真正的 Excel 對象,你可以控制一些屬性如 cell,sheet 等等。當然,HSSF 也有一些缺點,比 如不能直接支援 Excel 圖表,包與包之間依賴關係比較複雜等等。
對於統計頁數 (sheet 個數 ) 來說,HSSF 介面 可以很簡單的完成這一功能。下面我們簡單的介紹一下 HSSF 介面:
HSSF 提供給我們使用的對象在 org.apache.poi.hssf.usermodel 包中,主要部分包括 Excel 對象,樣式和格式,還有輔助操作。主要有以下幾種對象:
HSSFWorkbook: 對應於 Excel 的文檔對象
HSSFSheet: 對應於 Excel 的表單
HSSFRow: 對應於 Excel 的行
HSSFCell: 對應於 Excel 的格子單元
HSSFFont: 對應於 Excel 字型
HSSFName: 對應 於 Excel 名稱
HSSFDataFormat: 對應於日期格式
HSSFHeader: 對應於 Sheet 頭
HSSFFooter: 對 應於 Sheet 尾
HSSFCellStyle: 對應於 Cell 樣式
輔助操作包括:
HSSFDateUtil 日期
HSSFPrintSetup 列印
HSSFErrorConstants 錯誤資訊表