Word文檔生成神器:阿里開源項目poi.tl使用介紹

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 官方文檔

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章