利用poi-tl实现word模板替换功能

Poi-tl是基于Apache POI的Word模板引擎,纯JAVA组件。

API地址:http://deepoove.com/poi-tl/

实现过程:

系统中提供word模板上传功能,将word模板上传至指定位置

获取word模板,利用poi-tl生成替换后的word文档

返回OutputStream,调用浏览器下载

1、引入poi-tl

com.deepoove

poi-tl

1.5.0

若在使用过程出现NoClassDefindException,可以尝试引入如下依赖(非必须)

org.apache.poi

ooxml-schemas

1.3

org.apache.commons

commons-collections4

4.1

org.apache.xmlbeans

xmlbeans

2.3.0

2、使用poi-tl

1)文本替换{{var}}

/**

* 文本替换   {{title}}

* @throws Exception

*/

@GetMapping("/text")

public  void testText(HttpServletResponse response) throws Exception{

XWPFTemplate template = XWPFTemplate.compile("src\\word-template\\testText.docx").render(new HashMap(){{

put("func", "数据模型与样式的分离");

put("title", "Poi-tl 模板引擎");

}});

response.setContentType("application/x-download");

response.setHeader("Content-Disposition","attachment;filename=testText_replace.docx");

OutputStream out = response.getOutputStream();

//FileOutputStream out = new FileOutputStream("d:\\word_replace\\testText_replace.docx");

template.write(out);

out.flush();

out.close();

template.close();

}

2)插入表格{{#var}}

用于向word中插入一个全新的表格

/**

* 插入表格   {{#table}}

* @throws Exception

*/

@GetMapping("/createTable")

public  void testCreateTable(HttpServletResponse response) throws Exception{

Style headerStyle = new Style();

headerStyle.setBold(true);

java 通过模板替换pdf_word模板替换方案 PDF 下载相关推荐

  1. 5W字高质量java并发系列详解教程(上)-附PDF下载

    文章目录 第一章 java.util.concurrent简介 主要的组件 Executor ExecutorService ScheduledExecutorService Future Count ...

  2. java实验多线程机制_使用Java多线程的同步机制编写应用程序 PDF 下载

    使用Java多线程的同步机制编写应用程序 PDF 下载 本站整理下载: 相关截图: 主要内容: 一. 实验名称 使用Java多线程的同步机制编写应用程序 二. 实验目的及要求 1.理解并行/并发的概念 ...

  3. java综合面试题_JAVA 综合面试题 PDF 下载

    主要内容: Java面试题整理 Java面向对象 1. super()与this()的区别? This():当前类的对象,super父类对象.Super():在子类访问父类的成员和行为, 必须受类继承 ...

  4. 高级java知识结构图,Spring高级框架课程笔记 PDF 下载

    主要内容: Spring ⾼级框架(讲师:应癫) ssh = spring + struts + hibernate ssm = spring + springmvc + mybatis spring ...

  5. java面试全套清单_Java 全套面试题 PDF 下载

    主要内容: Java 最常见 面试题全解析:面试必备 序言 在本篇文章开始之前,我想先来回答一个问题:我为什么要写这样一篇关于面试的文章?原因有三个:第一,我想为每一个为梦想时刻准备着的"有 ...

  6. java精讲_《Java核心技术精讲(李兴华)》PDF 下载

    .第2部分 面向对象 第3章 面向对象 3.1 面向对象简介 3.2 类与对象 3.3 封装性初步 3.4 构造方法 3.5 匿名对象 3.6 简单java类 3.7 数组 3.8 string类 3 ...

  7. java 今日头条面试_【面试分享】今日头条Java面试题,复习资料完整版PDF下载

    2021年,字节的技术岗依旧是最香的,而且随着字节的规模不断扩大,机会也越来越多.马上迎来金三银四,很多小伙伴都在撸题备战中. 2021年,字节的技术岗依旧是最香的,而且随着字节的规模不断扩大,机会也 ...

  8. Java从入门到精通 第4版 PDF下载

    <Java从入门到精通(第4版)>从初学者角度出发,通过通俗易懂的语言.丰富多彩的实例,详细介绍了使用Java语言进行程序开发需要掌握的知识.全书分为28章,包括初识Java,熟悉Ecli ...

  9. java使用poi在word模板中替换柱状图、折线图、饼图、表格、文本、图片

    介绍 java使用poi在word模板中替换柱状图.折线图.饼图.表格.文本.图片 软件架构 安装教程 环境搭建:jdk1.8.0_291.maven1.8.0_291 IDEA工具:IntelliJ ...

最新文章

  1. 【OpenCV 4开发详解】深度神经网络应用实例
  2. linux mingetty 命令详解
  3. Android滤镜效果实现及原理分析
  4. 网站优化中什么样的外链容易被删去?
  5. 十大python开发软件-2017年最棒的七个Python图形应用GUI开发框架
  6. js容易被忘记的基础知识点————变量类型
  7. Angular 服务器端渲染的一个错误消息 - No provider for InjectionToken REQUEST
  8. 如何在命令行中使用jq将JSON转换为CSV
  9. [转]ASP.NET MVC4中@model使用多个类型实例的方法
  10. 一种简单的可控并发粒度的TaskScheduler的实现
  11. oracle/PL/SQL编程(4)
  12. 查看Anaconda内置的Python版本的方法
  13. java在线编译功能
  14. python 驱动工控机板卡,研华工控机主板驱动下载
  15. Linux Thermal机制源码分析之Thermal zone
  16. LAN9252芯片介绍
  17. 【获取内置命令ID】:VBA编程人员常用的工具。可以查询Excel内部命令的ID号
  18. 微软2013暑假实习生笔试题解析
  19. Python数据分析-numpy
  20. 无卡支付的几种模式(微信|支付宝|银联)

热门文章

  1. 使用香浓熵实现DNS Tunnel检测
  2. 【华为云动态】华为云DevCloud助力DevOps标准体系建设
  3. Vue深入学习1—mustache模板引擎原理
  4. pandas保存为csv格式文件
  5. matlab之结构体的创建与存储(CSV数据)
  6. 设置Markdown中展示Liquid(Jekyll)但不解析的方式
  7. LeetCode-652. 寻找重复的子树
  8. jQuery学习之二---jq核心
  9. mongodb统计函数
  10. java jar apktool,ShakaApkTool.jar v3.0.0(反编译显示中文的apktool)下载