2021-05-12 14:32:11
Apache POI操作Word概覽
1概覽
1.1 類包概覽
HWPF à Microsoft Word 97(-2007) --.doc
XWPF à Microsoft Word 2007 --.docx
HWPF和XWPF提供了相同的功能,但兩者之間沒有共同的方法。
Package |
Content |
org.apache.poi.hdf |
遺留程式碼;Internal程式碼,不能直接使用 |
org.apache.poi.hwpf.model |
遺留程式碼重構後的程式碼;Internal程式碼,不能直接使用 |
org.apache.poi.hwpf.usermodel |
公共程式碼,主要的介面方法 |
org.apache.poi.hwpf.extractor |
抽取(讀取)Word內容資訊 |
org.apache.poi.hwpf.converter |
Word-to-HTML, Word-to-FO(使用Apache FOP轉換為PDF) |
org.apache.poi.hwpf.dev |
開發者使用 |
HWPF入口類是HWPFDocument,當前(3.10)版本中參考了org.apache.poi.hwpf.model和org.apache.poi.hwpf.usermodel包中的介面,後期版本中可能會不同的介面。
XWPF入口類是XWPFDocument,從這個類中可以獲取段落、圖片、表格、標題等資訊。
下載包中的範例比較少,分別在examples下的HWPF和XWPF中;另外,可以從SVN上獲取部分測試範例程式碼(HWPF和XWPF)。
1.2 HWPF簡述
基礎資訊讀取 使用org.apache.poi.hwpf.extractor.WordExtractor類,其接受input Stream或者HWPFDocument作為範例化引數,使用getText()方法獲取全部paragraphs,或者使用getParagraphText()獲取每個paragraph中的文字資訊
特定資訊讀取 為獲取特定的文字或元素,首先需要建立org.apahce.poi.hwpf.HWPFDocument範例,通過getRange()方法獲取所有range,然後從中獲取所有paragraphs,以及更小的元素資訊。
頁首頁尾資訊 獲取文件的頁首頁尾資訊,首先需要建立org.apahce.poi.hwpf.HWPFDocument範例,然後建立org.apache.poi.hwpf.usermodel.HeaderStores範例,並將HWPFDocument範例作為引數傳入。通過HeaderStores範例可以獲取頁首、頁尾、首頁、奇數頁、偶數頁等資訊。另外,HeaderStores可以移除頁首頁尾中的宏命令。
修改文字資訊 使用(Range、Paragraph、CharacterRun中的)insertBefore()和insertAfter()方法可以修改相應文字資訊。
其他一些測試範例,見SVN。
1.3 XWPF簡述
基礎資訊讀取 通過org.apache.poi.xwpf.extractor.XWPFWordExtractor進行基礎資訊讀取,其接受input steam或XWPFDocument作為範例化引數。呼叫其getText()方法可以獲取所有paragraphs、tables以及headers等中的資訊。
特定資訊讀取 為獲取特定文字或元素,首先需要建立org.apache.poi.xwpf.XWPFDocument範例,利用範例選擇感興趣的IBodyElement要素(Table, Paragraph等),然後獲得一個XWPFRun,最後從XWPFRun中獲取文字或屬性資訊。
頁首頁尾資訊 獲取文件的頁首頁尾資訊,首先需要建立org.apache.poi.xwpf.XWPFDocument範例,然後建立org.apache.poi.xwpf.usermodel.XWPFHeaderFooter範例,並將HWPFDocument範例作為引數傳入。通過XWPFHeaderFooter範例可以獲取頁首、頁尾、首頁、奇數頁、偶數頁等資訊。
修改文字資訊 從XWPFParagraph中,可以獲取組成文字資訊的XWPFRun要素。如果要新增新文字,呼叫createRun()方法或者文字末端新增一個XWPFRun要素,insertNewRun(int)可以paragraph的指定位置新增一個XWPFRun要素。一旦有了XWPFRun,可以呼叫其setText(String)方法修改文字內容,如果想增加一個空白要素,如tabs或則line breaks,需要呼叫addTab()和addCarriageReturn()方法。
其他一些測試範例,見SVN。
相關文章