在Java中操作Word文档,通常使用Apache POI库。Apache POI是一个强大的Java库,用于读取和写入Microsoft Office格式的文件,包括Word、Excel和PowerPoint等。本文将介绍如何使用Apache POI库来创建、读取和修改Word文档。
一、添加Apache POI依赖
如果你使用Maven管理项目,可以在pom.xml
中添加以下依赖:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version> <!-- 请使用最新版本 -->
</dependency>
二、创建Word文档
下面是一个简单的示例,展示如何创建一个新的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 CreateWord {
public static void main(String[] args) {
// 创建一个空白文档
XWPFDocument document = new XWPFDocument();
// 创建一个段落
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
run.setText("Hello, World! 这是我用Java创建的Word文档。");
run.setBold(true); // 设置为加粗
run.setFontSize(16); // 设置字体大小
run.setUnderline(UnderlinePatterns.SINGLE); // 下划线
// 保存文档
try (FileOutputStream out = new FileOutputStream("example.docx")) {
document.write(out);
System.out.println("文档创建成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
在这个代码中,我们首先创建一个XWPFDocument
对象,然后创建一个段落并在其中添加一些文本。最后,我们将文档写入到一个example.docx
文件中。
三、读取Word文档
接下来,我们将讨论如何读取已存在的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 ReadWord {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("example.docx");
XWPFDocument document = new XWPFDocument(fis)) {
// 遍历所有段落
for (XWPFParagraph paragraph : document.getParagraphs()) {
System.out.println(paragraph.getText());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
此代码会打开名为example.docx
的Word文档,并打印出每个段落的文本内容。
四、修改Word文档
最后,我们来看看如何修改现有的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 ModifyWord {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("example.docx");
XWPFDocument document = new XWPFDocument(fis)) {
// 创建新的段落
XWPFParagraph newParagraph = document.createParagraph();
XWPFRun run = newParagraph.createRun();
run.setText("这是我新增的一段文本。");
// 保存修改后的文档
try (FileOutputStream out = new FileOutputStream("example_modified.docx")) {
document.write(out);
System.out.println("文档修改成功!");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
在这段代码中,我们通过文件输入流读取现有的example.docx
文档,然后向文档的末尾添加一段新的文本。最后,将修改后的文档保存为example_modified.docx
。
总结
通过本文的介绍,我们学习了如何使用Apache POI库在Java中创建、读取和修改Word文档。这些基本操作为文档处理打下了良好的基础。在实际开发中,你可以根据需要进行更复杂的操作,例如插入图片、表格等,Apache POI提供了丰富的API来满足这些需求。