apache java语法模型_4. 语法 - 《poi-tl 基于Apache POI的Word模板引擎》 - 书栈网 · BookStack...

4. 语法

poi-tl內建了五种模板。

4.1. 文本模板{{var}}

{{var}}

TextRenderData 或 String 数据模型。

0cafb70c6d7f9409704093db2bbc76b8.png

除了继承模板标签样式,也提供了通过代码设定文本样式的方式。

53a4f53e5a8fd3ddfa2f18a5ff7a69f3.png

结构体只是数据模型的可视化展示,数据模型不是文本型的,而是Java对象。下文中出现的所有结构体也都如此。

文本换行使用 \n 字符。

4.2. 图片模板{{@var}}

{{@var}}

PictureRenderData 数据模型。

56bec500fb87a9461e3ef7135647d463.png

可以指定图片的宽度和高度,也支持 BufferedImage,这样我们可以利用Java生成任意图表插入到word文档中。

b7dde594d9909357f9fd83c392a26e44.png

4.3. 表格模板{{#var}}

{{#var}}

poi-tl默认实现了N行N列的样式(如下图),同时提供了当数据为空时,展示一行空数据的文案(如下图中的No Data Descs),数据模型是 MiniTableRenderData 。

ca99720dcb5e6081f5793e3a40531735.png

3b5a51cdd5003a3445b692e9a52b16e5.png

dfe4dff98e6cdd630e38e31551bf8b69.png

表格的宽度(单位CM)怎么定义的: 页面宽度 - 页边距宽度 2 = 表格的最大宽度。页面宽度为A4(20.99 29.6,页边距为3.17 * 2.54)的文档最大表格宽度14.65CM。可以根据需要指定表格宽度。

需求的丰富多彩往往是默认表格样式无法满足的,我们通常会遇到以下两个场景:

场景一: 完全由自己掌控整个表格的生成:参见插件机制-新增RenderPolicy策略。

场景二: 在一个已有的表格中,动态处理某些单元格数据:提供了抽象表格策略DynamicTableRenderPolicy,参见示例-付款通知书。

4.4. 列表模板{{*var}}

{{*var}}

NumbericRenderData 数据模型。

8844018f0b937f69986b995f6548f9ee.png

列表样式支持罗马字符、有序无序等。参见NumbericRenderData.FMT_*。

FMT_DECIMAL//1. 2. 3.

FMT_DECIMAL_PARENTHESES//1) 2) 3)

FMT_BULLET//● ● ●

FMT_LOWER_LETTER//a. b. c.

FMT_LOWER_ROMAN//i ⅱ ⅲ

FMT_UPPER_LETTER//A. B. C.

4.5. 文档模板{{+var}}

{{+var}}

DocxRenderData 数据模型,可以是另一个docx文档的合并,或者是数据集合针对同一个模板的多个渲染结果的合并。

0e02615bc741b471796ef5879e1a9672.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值