Java根据模板生成word

今天这篇文章是根据word模板去生成新的word(在原模板当中写内容)。

展示效果如下图,左边为模板,右边是生成后的新word。
模板当中我使用了很多的占位符。
在这里插入图片描述

实现方式是用到了poi-tl模板引擎。
这里附上poi-tl文档 http://deepoove.com/poi-tl/#hack-loop-table

依赖

  <!--poi-tl生成word-->
        <dependency>
            <groupId>com.deepoove</groupId>
            <artifactId>poi-tl</artifactId>
            <version>1.8.2</version>
        </dependency>

代码如下:

public CommonResp generateWordBase1(HttpServletResponse response)
    {
        try
        {
            Map<String, Object> dataMap = new HashMap<>();
            dataMap.put("name", "ikun");
            dataMap.put("sex", "男");
            dataMap.put("age", 23);
            dataMap.put("time1", "2023-06-01");
            dataMap.put("time2", "2025-12-31");
            dataMap.put("address", "ikun集美们");
            dataMap.put("zuiming", "唱跳rap");
            dataMap.put("jiguan", "办案机关");
            dataMap.put("time3", "2025-12-31");
            dataMap.put("anqing", "案情大全");
            dataMap.put("qk", "特别情况");
            dataMap.put("yj", new PictureRenderData(200,200, ".jpg",
                    BytePictureUtils.getUrlByteArray("https://images.cnblogs.com/cnblogs_com/qq1445496485/1909145/o_201230130836%E5%9B%9B%E5%A8%83.jpg")));
            dataMap.put("bz", new PictureRenderData(100,100, "D:\\123.jpg"));


            // 原文档地址
            String mobanPath  = "D:\\doc\\审查报告.docx";
            //文件输出地址,指定到文件
            String outPath = "D:\\doc\\一个新的word文档.docx";
            //.文件地址的目录  是否存在,不存在新建目录
            File dest = new File(outPath);
            // 检测是否存在目录
            if (!dest.getParentFile().exists())
            {
                dest.getParentFile().mkdirs();// 新建文件夹
            }
            XWPFTemplate render = XWPFTemplate.compile(mobanPath).render(dataMap);
            //这个路径指定的是
            render.writeToFile(outPath);
        }
        catch (ZdyException e)
        {
            log.error(e.getMessage(), e);
            throw e;
        }
        catch (Exception e)
        {
            log.error(e.getMessage(), e);
            throw new ZdyException(ExceptionCode.EXCEPTION_CODE, e);
        }
        return CommonResp.success();
    }

有木有感觉 gan gan dan dan
在这里插入图片描述

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值