Word导出

1、引入依赖

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

2、创建模板

3、代码

package com.hhwy;

import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.deepoove.poi.plugin.table.LoopRowTableRenderPolicy;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Test {
    public static void main(String[] args) throws IOException {
        Map<String, Object> data = new HashMap<>();
        data.put("prjName","项目一");
        data.put("code","001");
        data.put("checkUser","zs,ls");
        data.put("checkTime","2022-12-31");
        data.put("name","名称一");
        //(2)动态的表格列表数据,要创建List集合,数据类型为map类型,map中的keyword中要遍历的列,值为要替换的内容
        List<Map<String,Object>> list=new ArrayList<>();
        //创建mapList集合
        for (int i = 0; i < 6; i++) {
            //用循环添加每行的数据,添加6行数据
            Map<String,Object> detailMap = new HashMap<>();
            //word中标签名的例和对应数据保存到map
            detailMap.put("problem", "问题"+i);
            detailMap.put("request", "要求"+i);
            list.add(detailMap);
        }
        LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy();
        //创建一个列表的规则
        Configure config = Configure.builder().bind("list", policy).build();
        //设置列表配置,如果有多个列表时需加.bind("list1", policy) 新列表配置即可
        data.put("list", list);
        XWPFTemplate template = XWPFTemplate.compile("C:\\Users\\hhwy-jzq\\Desktop\\aaa\\模板.docx",config).render(data);
        FileOutputStream out;
        out = new FileOutputStream("C:\\Users\\hhwy-jzq\\Desktop\\aaa\\out.docx");
        template.write(out);
        out.flush();
        out.close();
        template.close();
    }
}

效果图:

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