携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第二十天,点击查看活动详情
poi-tl模板生成word文件自动分页或代码分页功能实现,并且需要在每页下方带上特定内容以及当前为第几页与总页数。
poi-tl分页功能实现方式有两种
- word模板自动分页,生成模板的时候在需要设置页码的位置设置页码,使用工具:WPS
- 步骤如下:
- 选择页面上方的插入栏之后点击页码,在下方的弹出框中选中页码要显示的位置
-
点击页面出现的页脚,在页码设置中选中要显示的页码样式,应用范围为整篇文档,这样才会使生成好的文档分页后每页都带上分页符
-
通过代码传入list数据,word文档会自动分页,并且在每个分页的下方都带入分页符
代码示例:
OtherParam param = new OtherParam();
param.setTitle("title");
...
List<Detail> detailsList = new ArrayList(){{
add("1","2","3"...);
add("1","2","3"...);
...
}};
LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy();
Configure config = Configure.builder().bind("details", policy).build();
//如果是普通数据(没有跟Configure绑定)只能render一次,多次只会识别最后一个render的内容
//而列表数据Configure绑定后,可再render其他非循环数据 XWPFTemplate template = XWPFTemplate.compile(resource, config).render(
new HashMap<String, Object>() {{
put("details", detailsList);
}}
).render(param);
//也可以绑定多个list数据,每个list都需要与Configure进行绑定,并且赋到map里面去,使用示例:
LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy();
Configure config = Configure.builder()
.bind("details", policy)
.bind("tabs", policy)
.build();
XWPFTemplate.compile(resource, config).render(
new HashMap<String, Object>() {{
put("details", detailsList);
put("tabs", tabList);
}}
).render(param)
生成好的页面分页效果如下:
下章写poi-tl模板生成word文档代码实现分页效果,over.