应邀写的一篇文章:Java项目中利用Freemarker模板引擎导出--生成Word文档
资源下载:https://download.youkuaiyun.com/download/weixin_41367523/85051104
在项目中难免和各种数据报表打交道,如导出XX申请表,登记表,推荐表之类。就可以通过现有信息导出Word文档。基于Java语言来导出Word文档的方式也有很多种,如Jacob,Apache POI,Freemarker,PageOffice,java2word 等等。。。。
在这里将通过Freemarker这个模板引擎来实现导出 Word,项目不限于Swing,SSH,SSM,Spring Boot 之类的。。。。。。。。。。
Freemarker介绍
首先说一下Freemarker是个什么东西:
FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
FreeMarker是免费的,基于Apache许可证2.0版本发布。其模板编写为FreeMarker Template Language(FTL)
,属于简单、专用的语言。需要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。在模板中,主要用于如何展现数据, 而在模板之外注意于要展示什么数据 [1] 。
------百度百科
总的来说:模板 + 数据模型 = 输出
看不懂也没关系,看一个简单的例子:通常我们在Java Web开发的时候,实现一个JSP页面的输出需要编写一个JSP文件《xxxx.jsp》,实际上这个JSP文件主要包含了两部分内容:
HTML+CSS+JavaScript构成的页面框架 + 用来动态显示数据库数据的Java代码(一般来说直接写Java代码是非常不美观且修改复杂的事情,不符合MVC开发模式
,所以会用
JSTL标签来代替直接写Java代码
)
在
Freemarker
中也有一套类似于JSTL
的标签,其实简单来说freemarker
就是用来代替jsp
来做处理,因为我们如果用JSP
的话,是需要WEB
容器的,如tomcat,JSP
在第一次执行的时候会被编译转换成Servlet
类,之后的每次修改都要编译和转换。而FreeMarker模板技术并不存在编译和转换的问题,并且与容器无关。我们在非web
项目下也没必要再引入一个web
容器了。