3. 快速开始
3.1. 2min入门
新建Word模板template.docx,包含内容{{title}}
{{title}}
3.2. Template:Word模板和样式
Word文档支持DOCX格式,所有的模板标签都是以 {{
开头,以 }}
结尾,模板标签可以出现在任何非文本框的位置,包括页眉,页脚,表格内部等等。
表格布局可以设计出很多优秀专业的文档,模板文档请使用表格布局,不支持文本框。 |
poi-tl的一个核心特点是 数据模型与样式的分离,同样的数据模型可以用来渲染各种不同样式的模板。
文档的样式继承模板标签的样式,即如果模板{{title}}是蓝色微软雅黑加粗四号字体,则替换后的文本也是蓝色微软雅黑加粗四号字体。
3.3. Data-Model:数据源
数据源的结构体是一个标签名称和数据模型映射的集合,即[{标签名称, 数据模型}]。数据源可以是一个Map,其中key是标签名称;可以是一个JavaBean,field名称是标签名称,也可以通过注解@Name设置标签名称。
// 模板标签d_number
@Name("d_number")
private String dNumber;
// 模板标签m_vin
private String m_vin;
poi-tl默认的表达式支持对象点缀式访问,比如名称为{{author.name}}的标签对应的数据是author对象的name属性值。表达式也支持中文,比如{{客户手机号}}。 |
数据模型实现了接口 public interface RenderData {}
, 有以下几种数据模型:
TextRenderData、HyperLinkTextRenderData
PictureRenderData
MiniTableRenderData
NumbericRenderData
DocxRenderData
3.4. output:流
可以将最终结果渲染到任意输出流中,比如输出到文件流FileOutputStream生成新文档,输出到网络流ServletOutputStream供浏览器下载。
// 输出到任何流
template.write(OutputStream stream)
// 便捷的输出到文件
template.writeToFile(String path)