欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

用Java輕松讀取Word文檔內(nèi)容的常用方法

 更新時(shí)間:2025年03月19日 08:47:31   作者:五行星辰  
這篇文章主要介紹了用Java輕松讀取Word文檔內(nèi)容的常用方法,對(duì)于doc格式使用Apache?POI庫(kù)中的HWPFDocument和WordExtractor類(lèi),對(duì)于docx格式使用XWPFDocument類(lèi),并通過(guò)遍歷段落和文本運(yùn)行對(duì)象來(lái)提取文本內(nèi)容,需要的朋友可以參考下

前言

在 Java 開(kāi)發(fā)里,有時(shí)候咱得讀取 Word 文檔里的內(nèi)容,這在處理合同、報(bào)告等文件時(shí)特別有用。咱可以根據(jù) Word 文檔的格式,用不同的庫(kù)來(lái)實(shí)現(xiàn)讀取功能。下面就詳細(xì)說(shuō)說(shuō) .doc 和 .docx 這兩種常見(jiàn)格式文檔的讀取方法。

1. 讀取 .doc 格式的 Word 文檔

引入依賴(lài)

如果用 Maven 管理項(xiàng)目,在 pom.xml 里添加 Apache POI 的依賴(lài):

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-scratchpad</artifactId>
    <version>5.2.3</version>
</dependency>

代碼示例

import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;

import java.io.FileInputStream;
import java.io.IOException;

public class ReadDocFile {
    public static void main(String[] args) {
        try (FileInputStream fis = new FileInputStream("example.doc")) {
            // 創(chuàng)建 HWPFDocument 對(duì)象來(lái)表示 .doc 文檔
            HWPFDocument document = new HWPFDocument(fis);
            // 創(chuàng)建 WordExtractor 對(duì)象用于提取文檔內(nèi)容
            WordExtractor extractor = new WordExtractor(document);
            // 獲取文檔的文本內(nèi)容
            String content = extractor.getText();
            System.out.println(content);
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("讀取 .doc 文件失?。? + e.getMessage());
        }
    }
}

代碼解釋

  • FileInputStream fis = new FileInputStream("example.doc"):創(chuàng)建一個(gè)文件輸入流,用來(lái)讀取 example.doc 文件。

  • HWPFDocument document = new HWPFDocument(fis):用 HWPFDocument 類(lèi)創(chuàng)建一個(gè)文檔對(duì)象,它能處理 .doc 格式的文檔。

  • WordExtractor extractor = new WordExtractor(document):創(chuàng)建 WordExtractor 對(duì)象,它可以從文檔對(duì)象里提取文本內(nèi)容。

  • String content = extractor.getText():調(diào)用 getText() 方法獲取文檔的全部文本內(nèi)容,然后打印出來(lái)。

2. 讀取 .docx 格式的 Word 文檔

引入依賴(lài)

同樣在 pom.xml 里添加 Apache POI 的依賴(lài):

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.3</version>
</dependency>

代碼示例

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileInputStream;
import java.io.IOException;

public class ReadDocxFile {
    public static void main(String[] args) {
        try (FileInputStream fis = new FileInputStream("example.docx")) {
            // 創(chuàng)建 XWPFDocument 對(duì)象來(lái)表示 .docx 文檔
            XWPFDocument document = new XWPFDocument(fis);
            StringBuilder content = new StringBuilder();
            // 遍歷文檔中的每個(gè)段落
            for (XWPFParagraph paragraph : document.getParagraphs()) {
                // 遍歷段落中的每個(gè)文本運(yùn)行對(duì)象
                for (XWPFRun run : paragraph.getRuns()) {
                    content.append(run.getText(0));
                }
                content.append("\n");
            }
            System.out.println(content.toString());
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("讀取 .docx 文件失?。? + e.getMessage());
        }
    }
}

代碼解釋

  • FileInputStream fis = new FileInputStream("example.docx"):創(chuàng)建文件輸入流讀取 example.docx 文件。

  • XWPFDocument document = new XWPFDocument(fis):用 XWPFDocument 類(lèi)創(chuàng)建文檔對(duì)象,它專(zhuān)門(mén)處理 .docx 格式的文檔。

  • 通過(guò)兩層循環(huán),外層遍歷文檔里的每個(gè)段落,內(nèi)層遍歷段落里的每個(gè)文本運(yùn)行對(duì)象,把文本內(nèi)容添加到 StringBuilder 里,最后打印出來(lái)。

嘿,朋友們!有了上面的方法,咱就能用 Java 輕松讀取不同格式的 Word 文檔內(nèi)容啦。趕緊動(dòng)手試試,讓你的程序也能和 Word 文檔“交流”起來(lái)!

總結(jié)

到此這篇關(guān)于用Java輕松讀取Word文檔內(nèi)容的常用方法的文章就介紹到這了,更多相關(guān)Java讀取Word文檔內(nèi)容內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mybatis查找返回Map,List集合類(lèi)型的數(shù)據(jù)方式

    Mybatis查找返回Map,List集合類(lèi)型的數(shù)據(jù)方式

    這篇文章主要介紹了Mybatis查找返回Map,List集合類(lèi)型的數(shù)據(jù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java創(chuàng)建隨機(jī)數(shù)的四種方式總結(jié)

    Java創(chuàng)建隨機(jī)數(shù)的四種方式總結(jié)

    這篇文章主要介紹了java的四種隨機(jī)數(shù)生成方式的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下
    2022-07-07
  • 基于eclipse-temurin鏡像部署spring boot應(yīng)用的實(shí)現(xiàn)示例

    基于eclipse-temurin鏡像部署spring boot應(yīng)用的實(shí)現(xiàn)示例

    本文提供了基于eclipse-temurin鏡像部署Spring Boot應(yīng)用的詳細(xì)實(shí)現(xiàn)示例,通過(guò)使用Docker鏡像,可以輕松地創(chuàng)建和管理Spring Boot應(yīng)用程序的容器化環(huán)境,感興趣的可以了解一下
    2023-08-08
  • Java基于正則表達(dá)式獲取指定HTML標(biāo)簽指定屬性值的方法

    Java基于正則表達(dá)式獲取指定HTML標(biāo)簽指定屬性值的方法

    這篇文章主要介紹了Java基于正則表達(dá)式獲取指定HTML標(biāo)簽指定屬性值的方法,涉及java基于正則的HTML元素匹配相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01
  • Java導(dǎo)入、導(dǎo)出excel用法步驟保姆級(jí)教程(附封裝好的工具類(lèi))

    Java導(dǎo)入、導(dǎo)出excel用法步驟保姆級(jí)教程(附封裝好的工具類(lèi))

    這篇文章主要介紹了Java導(dǎo)入、導(dǎo)出excel的相關(guān)資料,講解了使用Java和ApachePOI庫(kù)將數(shù)據(jù)導(dǎo)出為Excel文件,包括創(chuàng)建工作簿、工作表、行和單元格,設(shè)置樣式和字體,合并單元格,添加公式和下拉選擇等功能,需要的朋友可以參考下
    2025-03-03
  • 深度源碼解析Java 線程池的實(shí)現(xiàn)原理

    深度源碼解析Java 線程池的實(shí)現(xiàn)原理

    如何高效的使用這些資源就是程序員在平時(shí)寫(xiě)代碼時(shí)候的一個(gè)努力的方向。本文要說(shuō)的線程池就是一種對(duì) CPU 利用的優(yōu)化手段。對(duì)Java 線程池的實(shí)現(xiàn)原理相關(guān)知識(shí)感興趣的朋友一起看看吧
    2021-05-05
  • 關(guān)于Java創(chuàng)建線程的2種方式以及對(duì)比

    關(guān)于Java創(chuàng)建線程的2種方式以及對(duì)比

    這篇文章主要給大家介紹了關(guān)于Java創(chuàng)建線程的2種方式以及對(duì)比的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-01-01
  • 一文學(xué)習(xí)Java NIO的ByteBuffer工作原理

    一文學(xué)習(xí)Java NIO的ByteBuffer工作原理

    很多網(wǎng)友說(shuō)JDK又在寫(xiě)B(tài)ug!下面通過(guò)通過(guò)本文學(xué)習(xí)下為何Java NIO的ByteBuffer這么垃圾,涉及到ByteBuf API 的優(yōu)點(diǎn)及工作原理解析,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • java 中Map詳解及實(shí)例代碼

    java 中Map詳解及實(shí)例代碼

    這篇文章主要介紹了java 中Map詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Mybatis緩存機(jī)制詳解與實(shí)例分析

    Mybatis緩存機(jī)制詳解與實(shí)例分析

    Mybatis的緩存分為一級(jí)緩存和二級(jí)緩存,一級(jí)緩存是SqlSession級(jí)別的而二級(jí)緩存是mapper級(jí)別的,本文詳細(xì)的介紹了Mybatis緩存機(jī)制與實(shí)例分析,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下
    2023-11-11

最新評(píng)論