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 ,從這個類中可以獲取段落、圖片、表格、標題等資訊。
ofollow,noindex" target="_blank">下載包 中的示例比較少,分別在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.HWPFDocumen t例項,通過getRange() 方法獲取所有range ,然後從中獲取所有paragraphs ,以及更小的元素資訊。
頁首頁尾資訊 獲取文件的頁首頁尾資訊,首先需要建立org.apahce.poi.hwpf.HWPFDocumen t例項,然後建立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 。
Linux公社的RSS地址 :https://www.linuxidc.com/rssFeed.aspx
本文永久更新連結地址:https://www.linuxidc.com/Linux/2018-09/154309.htm