Java使用POI生成Word模板文件

在企业级Java开发中,经常需要根据模板动态生成Word文档(如合同、报告、通知等)。Apache POI 是一个强大的开源库,支持读写 Microsoft Office 格式文件,包括 Word(.doc 和 .docx)。

什么是 Apache POI?

Apache POI 是 Apache 软件基金会提供的 Java API,用于处理 Microsoft Office 文档。其中:

基本使用步骤

  1. 准备一个 Word 模板(.docx),在需要替换的位置使用占位符,例如 ${name}${date}
  2. 使用 Java 读取该模板文件
  3. 遍历文档中的段落和表格,查找并替换占位符
  4. 将修改后的文档输出为新的 .docx 文件

示例代码

import org.apache.poi.xwpf.usermodel.*;
import java.io.*;
import java.util.Map;
import java.util.HashMap;

public class WordTemplateGenerator {
    public static void main(String[] args) throws Exception {
        // 1. 加载模板
        InputStream is = new FileInputStream("template.docx");
        XWPFDocument doc = new XWPFDocument(is);

        // 2. 准备数据
        Map<String, String> data = new HashMap<>();
        data.put("${name}", "张三");
        data.put("${date}", "2025-11-13");

        // 3. 替换段落中的文本
        for (XWPFParagraph paragraph : doc.getParagraphs()) {
            replaceInParagraph(paragraph, data);
        }

        // 4. 替换表格中的文本(如有)
        for (XWPFTable table : doc.getTables()) {
            for (XWPFTableRow row : table.getRows()) {
                for (XWPFTableCell cell : row.getCells()) {
                    for (XWPFParagraph paragraph : cell.getParagraphs()) {
                        replaceInParagraph(paragraph, data);
                    }
                }
            }
        }

        // 5. 输出新文件
        FileOutputStream out = new FileOutputStream("output.docx");
        doc.write(out);
        out.close();
        doc.close();
        is.close();
    }

    private static void replaceInParagraph(XWPFParagraph paragraph, Map<String, String> data) {
        for (XWPFRun run : paragraph.getRuns()) {
            String text = run.getText(0);
            if (text != null) {
                for (Map.Entry<String, String> entry : data.entrySet()) {
                    text = text.replace(entry.getKey(), entry.getValue());
                }
                run.setText(text, 0);
            }
        }
    }
}

注意事项

相关工具推荐

除了编程生成,您也可以使用以下在线工具辅助处理 Word 文档:

Word中怎样出现随机文字 - 快速生成占位文本方法大全 苹果用U盘装Windows系统完整教程 | 详细步骤图文指南 适合打游戏的Windows系统平板推荐 - 便携式PC游戏新选择 iPhone 4S 发布价格回顾 - 2011年苹果经典机型售价详情 论文降重最快的办法 - AI智能降重解决方案 ThinkPad P51 加装机械硬盘详细教程 - 提升存储容量的实用指南 “in addition to”等于什么?用法详解与例句 如何查看Word版本 - 快速识别Microsoft Word安装版本 论文降重技巧 - 如何有效降低论文重复率 如何在Word里插入本地视频 - 详细图文教程 中文逗号改成英文可以降重吗?论文降重技巧详解 AI写作论文扩写怎么写 - 完整指南与技巧 Word替换任意数字 - 批量清除或修改文档中的数字内容 毕业论文降重到多少最合适?AI智能降重指南 ThinkPad 快速启动 BIOS 设置指南 ThinkPad吧 - 纯粹的ThinkPad爱好者社区 ThinkPad T14p 笔记本电脑 - 高性能商务办公利器 PDF转Word文字 - 免费在线转换工具 | 快速提取PDF内容为可编辑Word文档 硕士论文理论借鉴部分降重技巧与方法 | 学术写作指南 iPhone突然自己响是为什么?原因解析与解决方法 Word全篇全部向左了怎么调?快速解决文档整体左对齐问题 ThinkPad是国产品牌吗?全面解析联想与ThinkPad的关系 论文怎么查重步骤图 - 完整查重流程指南 | AI智能降重助手 iPhone 莫名其妙发出提示音?原因与解决方法全解析 iPhone电池健康分析报告 | 专业解读与优化建议 iPhone有锁和无锁的区别 - 全面解析与选购指南 ThinkPad E445 参数配置 - 联想商务笔记本电脑详细规格 手机上看MD文件的软件推荐 - 轻松阅读Markdown文档 Windows系统的平板电脑值得购买吗?深度分析与选购建议 Word内容全部空白了怎么恢复?完整解决方法指南 论文降查重率修改的方法 - 学术写作技巧指南 视频怎么做成Word文档 - 实用教程与工具推荐 Windows系统升级的改变 - 探索每一次更新带来的革新 iPhone 6 Plus 参数详解 - 苹果手机详细规格介绍 ThinkPad BIOS 设置详解 - 全面指南与操作说明 毕业论文降重方法 - 大学生论文写作指南 Additionally 的近义词 | 英语词汇学习 iPhone屏幕圆点怎么关?详细关闭辅助触控(小白点)教程 论文查重率50%怎么办?专业降重解决方案 - 小发猫AI助手 ThinkPad BIOS修改启动硬盘顺序指南 华为平板电脑怎么安装Windows系统?详细解答与替代方案 论文写作AI润色怎么做 - 专业指南与技巧分享 PaperYY论文查重APP - 专业学术诚信检测工具 iPhone背屏碎了多少钱?2025最新维修价格参考 知网论文查重率降到10%以下 - 降重技巧与方法 iPhone更换字体指南 - 自定义你的iOS系统字体 装Windows系统的平板有哪些?主流设备推荐 ThinkPad 的 Fn 键怎么用?详细使用指南 ThinkPad 驱动下载与支持 - 官方兼容驱动程序 降AI查重率 - AI内容检测与优化指南 | 小发猫降AIGC工具 iPhone XR 如何强制关机重启 - 完整操作指南 iPhone 17 Pro 和 iPhone 17 Pro Max 区别详解 | 全面对比指南 毕业论文源代码降重技巧与方法 - 学术写作指南 维普论文查重软件怎么样 - 专业论文查重系统评测 Windows系统是否可能被美国限制?深度分析与应对建议 Windows系统下载官网入口 | 正版Windows 10/11免费获取指南 英语论文降重最好的方法 - AI智能降重技巧与工具指南 iPhone连不上别人的热点?原因与解决方法大全 ThinkPad无线鼠标连不上?常见原因与解决方法 怎么把论文查重结果放在Word里 - 完整教程指南 Windows系统与苹果触屏笔记本融合体验专题 PDF转Word后怎么编辑 - 实用指南与技巧 仿 iPhone 键盘下载 - 高度还原 iOS 输入体验 Windows系统为什么无法启动?常见原因与解决方案详解 英文论文查重怎么降重 - AI智能降重技巧与工具指南 大幅度的论文怎么降重 - AI智能降重指南 | 小发猫降AIGC工具 Lenovo ThinkPad 怎么读?正确发音与品牌介绍 论文直接全文降重技巧与方法 - 学术写作指南 论文降重翻译法 - AI智能降重技巧与方法指南 iPhone 17 后盖图片大全 | 最新设计与配色预览 大学生毕业论文降重标准与技巧 - 复古学术指南 怎么把HTML变成Word文档 - 实用转换方法大全 甘肃省2021职称论文查重率要求 - 职称评审指南 论文降重技巧大全 - 学术写作必备指南 苹果电脑装Windows系统需要收费吗?免费安装方法详解 iPhone 17 多少寸?最新屏幕尺寸与规格预测 - 全面解析 维普论文查重系统大学生版 - 专业论文查重服务,助力学术诚信 论文查重后是按照检测结果降重吗 - 学术诚信专题 什么软件能降低文章AI率 - AI降重工具推荐 iPhone 13 Pro 高清壁纸下载 - 免费4K超清手机壁纸合集 Windows系统停用对中国有影响吗?深度分析潜在影响与应对策略 降重论文怎么插入特殊符号 - 学术写作技巧指南 为什么 iPhone 突然就响了?原因与解决方法全解析 Gold Plating: Process, Uses, and Benefits AI疑似率检测原理与方法 - 人工智能内容识别技术详解 addition的形容词形式及用法详解 已发表论文降重技巧 - 学术写作指南 | 复古学术网 Word怎么把视频弄进去?详细教程与操作指南 Word金额大小写转换工具 - 在线免费将数字金额转为中文大写 有没有一款Windows系统的手机?回顾微软移动设备的兴衰史 论文查重60%咋降重 - 有效的降重方法与技巧 iPhone手机名字在哪里改?详细图文教程 - 苹果设备设置指南 ThinkPad X230 外接显卡(eGPU)配置指南 论文概念降重技巧 - AI智能降重方法指南 iPhone 13 Pro 尺寸详解 | 屏幕大小、重量与机身规格 智能论文降重重复率降到多少 - 专业降重指南 iPhone 11 运行内存是多少?全面解析RAM配置与性能表现 医学论文降重技巧和实例 - AI智能降重指南 iPhone 删除电话图标?真相与解决方案 | 用户指南 AI论文写作附带查重报告 - 智能学术写作解决方案