• 三行代码 完美解决word标签文字替换 POI增强版 可插入图片


    三行代码 完美解决word标签文字替换 POI增强版 可插入图片

    首先奉上源代码地址:
    https://gitee.com/xuanZP/poiplus.git

    在实际做项目过程中,经常会遇到要把数据动态插入到Word文件中的需求。此需求可以通过用程序填充数据到word模板中来实现。当下实际操作word的自然使用Apache POI居多(开源,免费),列举一下 我本人在开发过程中遇到的问题:

    如:

    1、替换不生效

    2、格式丢失

    3、图片无法替换等

    。。。

    不过实际上,直接使用Apache POI有很多局限不便,网上有些大神还发现了其中的一些BUG,甚至有些取巧的企业公司居然还做出了一套收费的工具包来,感觉很麻烦,故,通过查询整理,开发了自己的一套替换word中标签的代码供大家使用

    自己感觉还挺好用,通过下载代码,接触核心业务的代码三行就能完成一些列操作,而且还能动态插入图片

    核心代码如下:

     try {
                // 模板文件
                String template = "C:/Users/***/Desktop/aa/111.docx";
                // 输出文件
                String f = "C:/Users/***/Desktop/aa/" + RandomUtil.getRandomForIntegerBounded4(0, 100) + ".docx";
                // 输出的文件流 可根据实际情况调整
                OutputStream outputStream = new FileOutputStream(f);
                // 调用核心代码 Map<String, Object> mp = new HashMap<String, Object>();
                XWPFDocument doc = Word.generateWord(mp,template);
                doc.write(outputStream);
            } catch (Exception e) {
                e.printStackTrace();
            }

    代码中 mp 为要替换的信息 键值对形式:其中键为 模板中的标签 值为 新的字段:

    mp.put("${companyname2}", "value");

    文档中标签截图如下:

    替换一般字符的时候可直接将值放入map 中,如果是插入图片需设置图片属性:

          Map<String, Object> img = new HashMap<String, Object>();
            // 图片宽度
            img.put("width", "500");
            // 图片长度
            img.put("height", "300");
            // 图片后缀
            img.put("type", "jpg");
            // 图片地址 可以为本都路径 也可以为url
            img.put("content", path);
    
            mp.put("${img001}",img);
    为之一笑:
    客户被绑,蒙眼,惊问:“想干什么?” 对方不语,鞭笞之,客户求饶:“别打,要钱?” 又一鞭,“十万够不?” 又一鞭,“一百万?” 又一鞭。客户崩溃:“你们TMD到底要啥?” “要什么?我帮你做项目,写代码的时候也很想知道你TMD到底想要啥!”
  • 相关阅读:
    实习工作两月
    远程mysql_java.sql.SQLException: null, message from server: "Host 'xxx' is not allowed to connect
    大学毕业后拉开差距的真正原因写给将要毕业的自己
    var nameValue=$("#"+name+"DelFlag_"+id).attr("name"); 中的nameValue是一个字符串!并非boolean值
    装饰模式
    数据结构图(非带权图)(js)
    WPF的逻辑树与视觉树(1)基本概念
    WPF的动画(2)Animation
    集合附加属性(HACK)
    WPF的逻辑树与视觉树(2)Visual容器
  • 原文地址:https://www.cnblogs.com/XuanZP/p/13607460.html
Copyright © 2020-2023  润新知