Java操作Word文档:Apache POI入门与实践

在现代办公环境中,Word文档处理是不可或缺的一部分。对于Java开发者来说,如何高效地操作Word文档是一个常见的需求。Apache POI库正是为此而生,它提供了丰富的API,使得Java程序能够轻松地读取、创建和修改Word文档。本文将带你深入了解Apache POI,并通过实例展示其基本用法。

Java操作Word文档:Apache POI入门与实践

Apache POI简介

Apache POI是一个开源的Java库,主要用于处理Microsoft Office文档。它支持多种文件格式,包括Word、Excel、PowerPoint等。对于Word文档,Apache POI提供了HWPF和XWPF两个组件,分别用于处理老版本(.doc)和新版本(.docx)的Word文档。

环境搭建

在使用Apache POI之前,首先需要将其添加到项目中。如果你使用Maven,可以在pom.xml中添加以下依赖:

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

创建Word文档

下面是一个简单的示例,展示如何使用Apache POI创建一个Word文档:

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

import java.io.FileOutputStream;
import java.io.IOException;

public class CreateWordDocument {
    public static void main(String[] args) {
        try (XWPFDocument doc = new XWPFDocument()) {
            XWPFParagraph paragraph = doc.createParagraph();
            XWPFRun run = paragraph.createRun();
            run.setText("Hello, Apache POI!");

            try (FileOutputStream out = new FileOutputStream("example.docx")) {
                doc.write(out);
                System.out.println("Document created successfully!");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在这个示例中,我们首先创建了一个XWPFDocument对象,然后添加了一个段落,并在段落中插入文本“Hello, Apache POI!”。最后,我们将文档写入到example.docx文件中。

读取Word文档

接下来,我们来看如何读取一个已有的Word文档:

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

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

public class ReadWordDocument {
    public static void main(String[] args) {
        try (XWPFDocument doc = new XWPFDocument(new FileInputStream("example.docx"))) {
            for (XWPFParagraph paragraph : doc.getParagraphs()) {
                System.out.println(paragraph.getText());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在这个示例中,我们使用XWPFDocument对象读取example.docx文件,并遍历文档中的所有段落,打印出每个段落的文本内容。

修改Word文档

除了创建和读取,Apache POI还支持修改Word文档。以下是一个示例,展示如何在现有文档中添加新的内容:

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.FileOutputStream;
import java.io.IOException;

public class ModifyWordDocument {
    public static void main(String[] args) {
        try (XWPFDocument doc = new XWPFDocument(new FileInputStream("example.docx"))) {
            XWPFParagraph paragraph = doc.createParagraph();
            XWPFRun run = paragraph.createRun();
            run.setText("This is a new paragraph.");

            try (FileOutputStream out = new FileOutputStream("modified_example.docx")) {
                doc.write(out);
                System.out.println("Document modified successfully!");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在这个示例中,我们首先读取example.docx文件,然后添加一个新的段落,并在段落中插入文本“This is a new paragraph.”。最后,我们将修改后的文档保存为modified_example.docx。

总结

通过本文的介绍,相信你已经对Apache POI有了基本的了解,并能够使用它来创建、读取和修改Word文档。Apache POI的功能远不止于此,它还支持更多高级操作,如添加图片、表格等。希望这篇文章能为你后续的学习和实践提供一个良好的起点。

你可能想看:
« 上一篇
下一篇 »

相关推荐

java中什么是冒泡,冒泡算法

2026年09月06日

27阅读

java中冒号,java双冒号

2026年09月06日

26阅读

java中的->,java中的是什么意思

2026年09月06日

24阅读

java中的super用法,Java中super的说明

2026年09月06日

28阅读

java中反射的应用,java中反射的应用场景

2026年09月06日

26阅读

java中开关的定义,Java关键字有哪些

2026年09月06日

26阅读