Java 将数据导出到world模板 附带工具类 粘贴进项目就能使用

第一步,引入poi-tl.jar

        这是一个开源的world模板引擎jar包

        官方文档 Poi-tl

        长话短说这个jar包要搭配Apache POI一起使用 不然会报错 官方文档里有版本对应Poi-tl Documentation (deepoove.com)

         我使用的Apache POI是4.1.2 所以对应jar包版本就是1.10.1

            <dependency>
                <groupId>com.deepoove</groupId>
                <artifactId>poi-tl</artifactId>
                <version>1.10.1</version>
            </dependency>

第二步,创建一个world模板 并且在里面写上{{name}}

第三步,引入工具类(使用到了其他的工具类 不影响总体使用 如果你没有这些工具类的话 就替换下代码)

public class WorldUtil {

    private static final Logger log = LoggerFactory.getLogger(WorldUtil.class);

    private XWPFTemplate compile = null; //模板对象

    private Object templateData = null; //模板数据 第二步:创建数据,用于把我们模板中的{{}}包裹的变量替换掉,map中保存的key一定要和模板中的变量保持一致

    private String templateName = ""; //模板名称 xxx.docx

    public WorldUtil(String templateName,Object templateData){
        this.templateName = templateName;
        this.templateData = templateData;
        init();
    }

    /**
     *  初始化
     */
    private void init(){
        //第一步:读取模板
        ConfigureBuilder builder = Configure.builder();
        //使用SpringEL表达式 & 参数不存在时不抛出异常
        builder.useSpringEL(false);
        //生成模板对象
        compile = XWPFTemplate.compile("/你的模板文件夹存放地址/" + templateName, builder.build());
        //写入World
        writeWorld();
    }

    /**
     *  写入World
     */
    private void writeWorld()
    {
        //第三步:把设置的参数写入,并生成新的word文档
        compile.render(templateData);
    }

    /**
     * 导出World
     *
     * @return {@link String 导出后的文件名称}
     */
    public String exportWorld(){
        try {
            //清除模板名称中 "模板" 二字
            String templateName = StringUtils.replace(this.templateName, "模板", "");
            String filename = UUID.randomUUID().toString() + "_" + templateName;
            compile.writeToFile("/导出的文件存放地址/" + filename);
            compile.close();
            return filename;
        }catch (Exception e){
            log.error("导出World失败{}", e.getMessage());
            throw new UtilException("导出World失败,请联系网站管理员!");
        }
    }
}

第四步 调用工具类

public static void main(String[] args){
    HashMap map = new HashMap();
    map.put("name","小碗神的岚切");
    new WorldUtil("你刚才创建的模板名称",map).exportWorld();
}

没报错就去你生成文件的文件夹里面找

最后

也可以在模板里面生成表格和图片等等,具体操作直接看官方文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值