Word文档生成神器:开源项目poi.tl使用介绍

poi-tl是一款基于模板的Word文档生成工具,以其简单易用、功能丰富著称,支持图片、表格和自定义字体等,适用于多种场景,如页面数据导出、图表生成等。

Word文档生成神器:开源项目poi-tl使用介绍

一. 概述

1.1 适合的场景

  • 需要生成word文档的地方,它都可以进行使用;比如我们常见的,根据页面,生成相关的word文档,根据图表等生成word文档提供下载等;

1.2 poi-tl的优势

  • 基于模板:操作简单,方便,易于理解;
  • 步骤少,没有中间转换环节:模板是Word,生成也是Word,难度低;
  • Api易于使用:参考文档即可分分钟造出自己的模板和文档
  • 功能丰富,能带图片:支持图片,表格,以及自定义字体,自定义表格,图片格式大小等的设置,对Word的操控可以精细化;

作者本人目前试过其他的word生成技术,除开收费的技术,对于免费的就目前而言,Poi-tl是生成word的最方便,最简单,最优的技术选择之一;

二. poi-tl实例演示:

2.1 使用poi-tl生成word文档

  1. 创建一个新word文档,在新文档中创建一个文字模板,一个图片模板,一个表格模板; 如图所示:
    在这里插入图片描述

    模板都以 {{ }} 包裹,表格以 # 图片以@ 文字不带标记

  2. 在java中使用如下代码:
    • 引入jar包:
         <!-- poi-tl start -->
      <dependency>
          <groupId>com.deepoove</groupId>
          <artifactId>poi-tl</artifactId>
          <version>1.6.0-beta1</version>
      </dependency>
      <!-- end -->
      
    • 运行生成代码:
          public static void main(String[] args) throws Exception {
      
      XWPFTemplate template= XWPFTemplate.compile("C:\\Code\\scwx\\cdmtc.command.platform\\cdmtc.parsers\\src\\main\\resources\\poi_tl\\template.docx").
              render(new HashMap<String,Object>(){{
      
                  /* 文字 */
                  put("title","我是标题啊");
      
                  /* 图片 */
                  put("image",new PictureRenderData(100,100,".png", BytePictureUtils.getUrlBufferedImage("https://img-blog.csdnimg.cn/20190627130806508.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MTI4MDQ5,size_16,color_FFFFFF,t_70")));
      
                  /* 表格 */
                  RowRenderData header = RowRenderData.build(new TextRenderData("00CC33", "姓名"), new TextRenderData("00CC33", "学历"));
                  RowRenderData row0 = RowRenderData.build("张三", "研究生");
                  RowRenderData row1 = RowRenderData.build("李四", "博士");
                  RowRenderData row2 = RowRenderData.build("王五", "博士后");
                  put("table", new MiniTableRenderData(header, Arrays.asList(row0, row1, row2)));
              }});
      
      FileOutputStream out=new FileOutputStream("C:\\Code\\scwx\\cdmtc.command.platform\\cdmtc.parsers\\src\\main\\resources\\poi_tl\\out_template.docx");
      template.write(out);
      out.flush();
      out.close();
      template.close();
      }
      
  3. 生成的word文档如图所示:
    在这里插入图片描述

操作前需要引入jar包;直接创建一个main主方法即可测试;

三. 更多帮助信息

3.1 概述:

  • 在工作中,主要生成的就是图片,表格,和文字了。在 本文章章节二 中分别介绍了三种的最简单的书写方式,已经可以满足绝大多数需求了;
  • 如果我们需要动态生成图片,如动态生成Echarts图片(统计图) 可以参考上一篇文章;动态生成Echarts 通过动态生成Echarts图片,我们可以自动的生成统计图表,再将统计图表的图片和我们所需要的内容和表格融合成word文档;

3.2 官方文档

评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暗余

码字来之不易,您的鼓励我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值