从别人那里看的,结果后来发版到服务器导出时报错,访问不到模板路径位置,后来改成了。这里我自己整理一下

重点:解决 访问不到Word模板路径

//word模板文件流 这种方法不会在linux上或者jar启动失效
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("static/template/test2.docx");

1.引入依赖,添加到pom.xml文件

        <!-- word导出 --><dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</artifactId><version>1.7.3</version></dependency><!--  上面需要的依赖--><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.2</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml-schemas</artifactId><version>4.1.2</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version></dependency>

2.新建一个controller用于测试,下图是我的模板路径(声明一下我这里是springboot项目)  src/main/resources/static/template/test2.docx

@RequestMapping("/auth/exportWord/")
@RestController
public class ExportWordController {/*** 导出word --- poi-tl(包含动态表格)*/@RequestMapping("/exportDataWord3")public void exportDataWord3(HttpServletResponse response) throws IOException {try {//组装动态表格列表数据List<Map<String,Object>> detailList = new ArrayList<Map<String,Object>>();for (int i = 0; i < 5; i++) {Map<String,Object> detailMap = new HashMap<String, Object>();detailMap.put("procName", "总装" + i + "工序");//工序detailMap.put("reportName", "隔壁老王" + i);//装配人员detailMap.put("materialName","压缩机组件" + i);detailMap.put("number","20210817" + i);detailMap.put("installNum",i + "台");detailList.add(detailMap);}//word模板文件流 这种方法不会在linux上或者jar启动失效InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("static/template/test2.docx");//渲染表格HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy();Configure config = Configure.newBuilder().bind("detailList", policy).build();XWPFTemplate template = XWPFTemplate.compile( inputStream, config).render(new HashMap<String, Object>() {{put("detailList", detailList);put("predefine2", "AR系列");put("no","20210803001");put("spec","AR-5-N");put("planStartDate", "2021-9-10 16:11:00");put("customerName","非洲私立医院");put("salesorderNo","ATCL21-023");put("test1","10088200");put("test2","隔壁老王");put("test3","隔壁老王");}});//生成文件名String fileName = new Date().getTime() + ".docx";//文件名  带后缀// 设置强制下载不打开response.setContentType("application/force-download");// 设置文件名,解决中文乱码问题response.setCharacterEncoding("utf-8");response.addHeader("Content-Disposition","attachment; filename=\"" + new String("记录跟踪单".getBytes("gbk"),"iso8859-1") + fileName + "\"");OutputStream out = response.getOutputStream();template.write(out);out.flush();out.close();template.close();} catch (Exception e) {e.printStackTrace();}}}

3.Word模板样式:

4.导出结果:

AR系列氧气机生产记录跟踪单

SAET-7.5-027/C                                                                                  N0.:20210803001

产品型号

AR-5-N

计划生产日期

2021-9-10 16:11:00

客    户

非洲私立医院

订单号

ATCL21-023

工 序

装配人员

主要材料名称

批号/编号

安装数量

总装0工序

隔壁老王0

压缩机组件0

202108170

0台

总装1工序

隔壁老王1

压缩机组件1

202108171

1台

总装2工序

隔壁老王2

压缩机组件2

202108172

2台

总装3工序

隔壁老王3

压缩机组件3

202108173

3台

总装4工序

隔壁老王4

压缩机组件4

202108174

4台

颜    色

其    它

整机编号:10088200                                          验证:隔壁老王     批准:隔壁老王

poi根据Word模板导出Word文件,Word模板相关推荐

  1. java poi导出excel模板_POI通过模板导出EXCEL文件的实例

    一般的EXCEL导出使用POI先创建一个HSSFWorkbook,然后通过不断创建HSSFRow,HSSFCell后设置单元格内容便可以完成导出. 这次在项目中需要用到模板,导出的内容包括(1.模板中 ...

  2. SpringBoot集成文件 - 如何基于POI-tl和word模板导出庞大的Word文件?

    前文我们介绍了通过Apache POI通过来导出word的例子:那如果是word模板方式,有没有开源库通过模板方式导出word呢?poi-tl是一个基于Apache POI的Word模板引擎,也是一个 ...

  3. ftl模板导出excel_使用freemarker模板引擎导出word或excel文件(代码实现)

    在项目中我们会遇到很多导入导出excel或者word 有时候一些比较复杂的表格设计用freemarker 来做为模板导出还是很不错的 具体操作 我们要针对该列表做数据导出模板 在桌面右键新建一个exc ...

  4. 使用EasyPoi根据模板导出Excel或word文档

    接着上篇文章 Java根据模板导出Excel并生成多个Sheet 简单介绍下EasyPoi的使用,直接上代码吧 首先当然是先引入jar包了,看下图 其次,还是贴代码吧看实例,下面是根据模板导出的工具类 ...

  5. freemarker模板导出带表格word详细教程

    前言:另外一篇是手机端的word导出,需要兼容性,不然在安卓手机会乱码 freemarker模板导出word循环图片表格详细教程_Java大表哥的博客-CSDN博客  并且另存为模版格式不同数据绑定方 ...

  6. java按照模板导出pdf或者word

    一.java按照模板导出pdf (一)制作模板 1.在word里制作模板 因为PDF常用的软件不支持编辑,所以先用Word工具,如WPS或者Office新建一个空白Word文档,里面制作出自己想要的样 ...

  7. Java使用模板导出带图片word文档

    之前已经写过一个 Java使用模板导出Word文档 由于系统升级,模板得添加图片,这个时候遇到了一个比较恶心的问题特地发文记录一下. 先把老模板翻出来 **.ftl 然后右键用wps或者office打 ...

  8. poi -- 上传、自定义模板导出excel文件插入到数据库

    ===maven文件=== <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi ...

  9. Springboot 自定义模板导出Excel文件

    指定模板(自定义)导出数据,就像: 记得加$ 记得加$ 记得加$ 记得加$ 记得加$ 记得加$ 记得加$ 记得加$ 记得加$ 记得加$ 记得加$ 注意: 模板这里有个小坑,就是当传入的值为数组时,需要 ...

  10. Springboot 指定自定义模板导出Excel文件

    前言 之前写过一篇极其简单的excel导入导出,是单个文件的: Springboot 最简单的结合MYSQL数据实现EXCEL表格导出及数据导入_小目标青年的博客-CSDN博客 还写过一篇单个,多个 ...

最新文章

  1. php传输数组给axios
  2. 玩转Mixly – 9、Arduino AVR编程 之 函数
  3. 什么是 CAS 机制?
  4. mysql 云主机名_mysql部署到云主机的笔记
  5. Spring------自动化装配Bean(一)
  6. Graph(2014辽宁ACM省赛)
  7. centos8解压war包
  8. 电脑屏幕保护插件-Fliqlo
  9. UE4自定义资源和编辑器(二):创建自定义编辑器
  10. UHD X310 MTU 大于1472 windows配置方法
  11. 鸿蒙系统能玩魔兽世界吗,魔兽世界TBC燃烧远征测试服,H英雄本的装备2小时内可以交易, 亲友们可以互相毛装备了...
  12. 三步解决NLP数据标注难题,百度大脑EasyDL专业版上线文本智能标注功能
  13. Web前端人员如何提升能力 提高效率有哪些方法
  14. matlab平均脸,BFM使用 - 获取平均脸模型的68个特征点坐标
  15. 一起搭建私有物联网云平台讲解
  16. 数据分析,把握商机 关键词采集工具助你挖掘潜在客户
  17. IBMMQ-安装IBMMQ服务端7.5(windows)
  18. python正则表达式详解compile_python正则表达式详解
  19. 基于jsp mysql的二手物品交易系统_jsp+mysql高校二手物品交易系统设计
  20. Python批量获取高校基本信息

热门文章

  1. python如何调用函数三次_python中如何调用函数
  2. 批量压缩调整多个 jpg、png、bmp 等图片的质量,从而减小图片体积
  3. 使用CSS将图标进行旋转无效
  4. python tkinter窗口组件Canva
  5. python界面登录程序_python的基础程序——简陋的管理员(用户)登录界面
  6. linux系统改键盘系统,Linux 修改键盘设置
  7. 微信公众号迁移及公证书快速办理流程
  8. VBA 字典使用小结:关键字循环
  9. 两个最热门的BI软件:Tableau和Finereport
  10. 网上值得注册的论坛(最新整理)