在Java中,如果我们希望对Word文档进行预设参数填值并生成新的文档,常用的工具是Apache POI库。Apache POI是一个强大的库,能够处理Microsoft Office格式的文件,包括Word(.doc和.docx文件)。本文将介绍如何使用Apache POI创建一个Word文档,并填入预设的参数以及插入图片。

准备工作

首先,我们需要在项目中引入Apache POI的依赖。如果您正在使用Maven作为构建工具,可以在pom.xml中添加以下依赖:

<dependencies>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>5.2.3</version> <!-- 请使用最新版本 -->
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>5.2.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.xmlbeans</groupId>
        <artifactId>xmlbeans</artifactId>
        <version>5.1.1</version>
    </dependency>
</dependencies>

创建Word文档

下面我们将创建一个新的Word文档,并填写预设参数,同时插入一张图片。我们假设需要生成一个包含用户信息的报告。

代码示例

import org.apache.poi.xwpf.usermodel.*;
import org.apache.poi.util.Units;

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

public class WordDocumentGenerator {

    public static void main(String[] args) {
        // 创建一个Word文档对象
        XWPFDocument document = new XWPFDocument();

        // 添加标题
        XWPFParagraph titleParagraph = document.createParagraph();
        XWPFRun titleRun = titleParagraph.createRun();
        titleRun.setText("用户信息报告");
        titleRun.setBold(true);
        titleRun.setFontSize(20);

        // 添加用户信息
        String userName = "张三";
        String userEmail = "zhangsan@example.com";
        String userPhone = "12345678901";

        XWPFParagraph infoParagraph = document.createParagraph();
        XWPFRun infoRun = infoParagraph.createRun();
        infoRun.setText("姓名: " + userName);
        infoRun.addBreak();
        infoRun.setText("电子邮箱: " + userEmail);
        infoRun.addBreak();
        infoRun.setText("联系电话: " + userPhone);

        // 插入图片
        try {
            InputStream is = WordDocumentGenerator.class.getResourceAsStream("/path/to/image.jpg"); // 请替换为图片路径
            if(is != null) {
                document.createParagraph(); // 创建一个段落用于图片
                XWPFRun run = document.createParagraph().createRun();
                run.addPicture(is, XWPFDocument.PICTURE_TYPE_JPEG, "image.jpg", Units.toEMU(100), Units.toEMU(100)); // 设置图片大小
                is.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        // 保存文档
        try (FileOutputStream out = new FileOutputStream("UserReport.docx")) {
            document.write(out);
            document.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

代码解析

  1. 创建文档:通过new XWPFDocument()创建一个新的Word文档对象。
  2. 添加标题:使用XWPFParagraphXWPFRun创建标题,并设置其属性(如字体、加粗、字号)。
  3. 添加用户信息:通过段落和运行对象逐行添加用户信息。
  4. 插入图片:通过输入流读取图片,并使用addPicture方法插入图像。在插入时,可以指定图片的类型和大小(使用Units.toEMU转换单位)。
  5. 保存文档:通过FileOutputStream将文档写入文件。

总结

以上示例展示了如何使用Apache POI创建一个简单的Word文档,并对其进行参数填值和插入图片。这种方式非常适合于生成报告、通知等文档。使用Apache POI,开发者可以灵活地处理Word文档,满足多样化的需求。希望本文能够帮助您理解如何在Java中操作Word文档。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部