欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

pol-tl导出word

发布时间:2024/5/15 编程问答 39 豆豆
生活随笔 收集整理的这篇文章主要介绍了 pol-tl导出word 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

poi-tl使用word模板生成word文件

导入依赖

com.deepoove poi-tl 1.12.0

模板

{{startTime}}获取时间, {{?list}}列表list{{value}}{{_is_last ? '。' : ';'}}{{/list}}

word工具类

package com.example.poitl.utils;import cn.hutool.core.io.resource.ResourceUtil; import com.deepoove.poi.XWPFTemplate; import com.deepoove.poi.config.Configure; import com.deepoove.poi.config.ConfigureBuilder; import lombok.extern.slf4j.Slf4j;import java.io.*; import java.util.Map;/*** word工具类*/ @Slf4j public class WpsUtill {/*** @author Jim* @description:导出word* @date 2021/8/12 15:09* @param //[data]* @return void*/public static void exportWord(Map<String,Object> data) {//文件路径String filePath = "C:\\Users\\99250\\Desktop\\template.docx";try {//设置导出路径 创建一个word目录String path = "C:\\Users\\99250\\Desktop\\template.docx ";File file = new File(path);//如果不存在则创建if (!file.exists()) {file.mkdirs();}//获取文件名称String name = getFilename();//获取模板XWPFTemplate template = getWordTemplate(data);//输出到指定目录下filePath = path+name;FileOutputStream ostream = new FileOutputStream(filePath);template.write(ostream);//关闭输出流ostream.flush();ostream.close();template.close();}catch(IOException e){//异常处理log.error("文件导出错误", e);}}/*** @author Jim* @description:获取导出word的文件名称* @date 2021/8/12 15:09* @param// []* @return java.lang.String*/private static String getFilename() {//获取100以内的随机数double random = Math.random();return "想输入的文件名"+random*100+".docx";}/*** @author Jim* @description:获取word模板添加数据后的word文档* @date 2021/8/12 15:10* @param// [data]* @return com.deepoove.poi.XWPFTemplate*/private static XWPFTemplate getWordTemplate (Map<String,Object> data) {//获取模板的输入流InputStream stream = ResourceUtil.getStream("C:\\Users\\99250\\Desktop\\template.docx");ConfigureBuilder builder = Configure.builder();builder.useSpringEL();XWPFTemplate template = XWPFTemplate.compile(stream,builder.build()).render(data);return template;} }

Controller类

package com.example.poitl.controller;import com.example.poitl.utils.WpsUtill ; import com.sun.org.apache.xml.internal.security.utils.JavaUtils; import lombok.extern.slf4j.Slf4j;import java.util.*;/*** @author :Jim* @date :Created in 2021/8/10 17:29* @description:导出word控制类* @modified By:* @version: 1.0.0$*/ @Slf4j public class WordController {public static void main(String[] args) {//模拟数据Map<String, Object> map = new HashMap<>();map.put("startTime", new Date());List<Map<String, Object>> list = new ArrayList<Map<String, Object>>() {{add(new HashMap<String, Object>() {{this.put("value","list1");}});add(new HashMap<String, Object>() {{this.put("value","list2");}});add(new HashMap<String, Object>() {{this.put("value","list3");}});}};map.put("list", list);WpsUtill.exportWord(map);}}

总结

以上是生活随笔为你收集整理的pol-tl导出word的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。