Java中使用Apache POI讀取word文件簡(jiǎn)單示例
Apache POI是Apache軟件基金會(huì)的開放源碼函式庫(kù),POI提供API給Java程序?qū)icrosoft Office格式檔案讀和寫的功能。
1.讀取word 2003及word 2007需要的jar包
讀取 2003 版本(.doc)的word文件相對(duì)來說比較簡(jiǎn)單,只需要 poi-3.5-beta6-20090622.jar 和 poi-scratchpad-3.5-beta6-20090622.jar 兩個(gè) jar 包即可, 而 2007 版本(.docx)就麻煩多,我說的這個(gè)麻煩不是我們寫代碼的時(shí)候麻煩,是要導(dǎo)入的 jar 包比較的多,有如下 7 個(gè)之多:
1. openxml4j-bin-beta.jar
2. poi-3.5-beta6-20090622.jar
3. poi-ooxml-3.5-beta6-20090622.jar
4 .dom4j-1.6.1.jar
5. geronimo-stax-api_1.0_spec-1.0.jar
6. ooxml-schemas-1.0.jar
7. xmlbeans-2.3.0.jar
其中 4-7 是 poi-ooxml-3.5-beta6-20090622.jar 所依賴的 jar 包(在 poi-bin-3.5-beta6-20090622.tar.gz 中的 ooxml-lib 目錄下可以找到)。
2.換行符號(hào)
硬換行:文件中換行,如果是鍵盤中使用了"enter"的換行。
軟換行:文件中一行的字符數(shù)容量有限,當(dāng)字符數(shù)量超過一定值時(shí),會(huì)自動(dòng)切到下行顯示。
對(duì)程序來說,硬換行才是可以識(shí)別的、確定的換行,軟換行與字體大小、縮進(jìn)有關(guān)。
3.讀取的注意事項(xiàng)
值得注意的是: POI 在讀取不會(huì)讀取 word 文件中的圖片信息; 還有就是對(duì)于 2007 版的 word(.docx), 如果 word 文件中有表格,所有表格中的數(shù)據(jù)都會(huì)在讀取出來的字符串的最后。
4.讀取word文本內(nèi)容代碼
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.poi.POIXMLDocument;
import org.apache.poi.POIXMLTextExtractor;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
public class Test {
public static void main(String[] args) {
try {
InputStream is = new FileInputStream(new File("2003.doc"));
WordExtractor ex = new WordExtractor(is);
String text2003 = ex.getText();
System.out.println(text2003);
OPCPackage opcPackage = POIXMLDocument.openPackage("2007.docx");
POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);
String text2007 = extractor.getText();
System.out.println(text2007);
} catch (Exception e) {
e.printStackTrace();
}
}
}
相關(guān)文章
Java實(shí)現(xiàn)簡(jiǎn)易版猜燈謎游戲的示例代碼
燈謎是中秋節(jié)傳統(tǒng)的活動(dòng)之一,而現(xiàn)代化的方式則是將其制作成一個(gè)小游戲,讓用戶在游戲的過程中猜燈謎,互動(dòng)體驗(yàn)更佳,所以本文小編就用Java制作一款猜燈謎小游戲吧2023-09-09
淺談java對(duì)象之間相互轉(zhuǎn)化的多種方式
這篇文章主要介紹了淺談java對(duì)象之間相互轉(zhuǎn)化的多種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08
spring中WebClient如何設(shè)置連接超時(shí)時(shí)間以及讀取超時(shí)時(shí)間
這篇文章主要給大家介紹了關(guān)于spring中WebClient如何設(shè)置連接超時(shí)時(shí)間以及讀取超時(shí)時(shí)間的相關(guān)資料,WebClient是Spring框架5.0引入的基于響應(yīng)式編程模型的HTTP客戶端,它提供一種簡(jiǎn)便的方式來處理HTTP請(qǐng)求和響應(yīng),需要的朋友可以參考下2024-08-08
電腦上安裝多個(gè)JDK版本時(shí)該如何自由切換(詳細(xì)圖文)
我們?cè)趯W(xué)習(xí)的過程中經(jīng)常用到不同的jdk版本,那么如何在一臺(tái)電腦上同時(shí)安裝多個(gè)jdk版本并進(jìn)行切換呢,這篇文章主要給大家介紹了關(guān)于電腦上安裝多個(gè)JDK版本時(shí)該如何自由切換的相關(guān)資料,需要的朋友可以參考下2023-10-10
Java Character類對(duì)單個(gè)字符操作原理解析
這篇文章主要介紹了Java Character類對(duì)單個(gè)字符操作原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03

