Word模板生成word文件

注意点

  • word编辑工具使用WPS或Word2003

依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>org.example</groupId>
   <artifactId>pdfDemo</artifactId>
   <version>1.0-SNAPSHOT</version>

   <dependencies>
       <!-- 日志工具 -->
       <dependency>
           <groupId>org.slf4j</groupId>
           <artifactId>slf4j-log4j12</artifactId>
           <version>1.7.29</version>
       </dependency>
       <dependency>
           <groupId>log4j</groupId>
           <artifactId>log4j</artifactId>
           <version>1.2.17</version>
       </dependency>
       <!-- 日志工具 -->
<!--       word-->
       <dependency>
           <groupId>com.deepoove</groupId>
           <artifactId>poi-tl</artifactId>
           <version>1.10.0</version>
       </dependency>
<!--       word-->
   </dependencies>
</project>

模板参数

package com.cyz;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
* @Author lian-chen
* @Date 2021/7/8 15:13
*/
public class WordTemplateParam {
   /**
    * 单系列图表参数类
    * 单系列图表指的是饼图(3D饼图)、圆环图等。
    */
   public static class ChartSingleSeriesParam{
       /**
        * 图表标题
        */
       private String charTitle = "";
       /**
        * 图例列表
        */
       private String[] seriesTitles = new String[]{};
       /**
        * value 对应图例值列表
        */
       private Number[] seriesValues = new Number[]{};

       public String getCharTitle() {
           return charTitle;
      }

       public void setCharTitle(String charTitle) {
           this.charTitle = charTitle;
      }

       public String[] getSeriesTitles() {
           return seriesTitles;
      }

       public void setSeriesTitles(String[] seriesTitles) {
           this.seriesTitles = seriesTitles;
      }

       public Number[] getSeriesValues() {
           return seriesValues;
      }

       public void setSeriesValues(Number[] seriesValues) {
           this.seriesValues = seriesValues;
      }
  }
   /**
    * 多系列图表参数类
    * 多系列图表指的是条形图(3D条形图)、柱形图(3D柱形图)、面积图(3D面积图)、折线图(3D折线图)、雷达图等
    */
   public static class ChartMultiSeriesParam {
       /**
        * 图表标题
        */
       private String charTitle = "";
       /**
        * 系列
        */
       private String[] seriesTitles = new String[]{};
       /**
        * key 对应图例名称
        * value 对应系列的图例值列表
        */
       private Map<String, Number[]> seriesValues = new HashMap<>();

       public String getCharTitle() {
           return charTitle;
      }

       public void setCharTitle(String charTitle) {
           this.charTitle = charTitle;
      }

       public String[] getSeriesTitles() {