poi word写入图片

直接使用的百度结果,经过测试可行

1.pom增加jar

复制代码
        <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>

2.代码

复制代码
package pers.wwz.study.poiwordimage;

import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.util.Units;
import org.apache.poi.xwpf.usermodel.*;
 
import java.io.*;
 
public class WordExportImage {
    public static void main(String[] args) throws Exception {
        // 模板文件路径
        String templatePath = "template.docx";
        // 输出文件路径
        String outputPath = "output.docx";
        // 图片文件路径
        String imagePath = "image.png";
 
        // 读取模板
        InputStream is = new FileInputStream(templatePath);
        XWPFDocument doc = new XWPFDocument(is);
 
        // 替换文档中的图片占位符
        for (XWPFParagraph para : doc.getParagraphs()) {
            for (XWPFRun run : para.getRuns()) {
                String text = run.getText(0);
                if (text != null && text.contains("IMAGE_PLACEHOLDER")) {
                    run.setText("", 0); // 清除占位符文本
                    run.addPicture(new FileInputStream(imagePath),
                            XWPFDocument.PICTURE_TYPE_PNG, imagePath,
                            Units.toEMU(200), Units.toEMU(200)); // 插入图片
                }
            }
        }
 
        // 输出文件
        FileOutputStream out = new FileOutputStream(outputPath);
        doc.write(out);
        out.close();
        doc.close();
        is.close();
    }
}
相关推荐
lczdyx4 小时前
告别付费与隐私泄露!用Pandoc在本地免费、安全地将Markdown转为Word(保姆级教程)
安全·职场和发展·word·办公·自由职业者
zheshiyangyang4 小时前
前端面试基础知识整理【Day-3】
前端·word
C系语言7 小时前
windows系统安装zettlr,粘贴大模型生成的公式生成.md文件,然后使用pandoc转换word
word
骆驼爱记录8 小时前
Word兼容性问题全解析
自动化·word·excel·wps·新人首发
阿P的哲学20 小时前
word如何删除所有标点符号
word
funnycoffee1231 天前
word vba提取所有表格到1个新的文档中
数据库·word
阿蒙Amon4 天前
C#每日面试题-ref和out的区别
java·c#·word
SunnyDays10114 天前
如何使用 C# 创建、修改和删除 Word 中的 VBA 宏(无需Microsoft Word)
c#·word·创建vba宏·修改vba宏·删除vba宏
星star~4 天前
使用Free Marker导出word类型,并压缩
java·后端·word
缺点内向4 天前
如何在 C# 中移除 Word 文档中的分页符
c#·自动化·word·.net