Java根据模板生成word

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

展示效果如下图,左边为模板,右边是生成后的新word。
模板当中我使用了很多的占位符。
Java根据模板生成word_第1张图片

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

依赖

  
        <dependency>
            <groupId>com.deepoovegroupId>
            <artifactId>poi-tlartifactId>
            <version>1.8.2version>
        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
Java根据模板生成word_第2张图片

你可能感兴趣的:(工具类,word)