实现逻辑
自定义渲染策略实现逻辑:
- 找到模板中的表格标签
- render方法接收java中对应模板表格标签的所有list数据
- 执行自定义渲染逻辑
参考代码
word模板如下:
实体类:
1 |
|
自定义渲染策略类:
1 |
|
测试方法:
1 | String filePath = "E:\\Documents\\CompanyProjects\\cxhl-services\\src\\test\\java\\word\\template\\gksx_problem.docx"; |
生成效果如下:
注意点
- 1、上面例子中,实体类GksxTableData对应整个表格数据,里面也可以有多个list,且render方法只会处理里面的list属性。
1 |
|
testList也可以接收到,官方文档中的收费单案例就是这样实现的。
-
2、JxWordExport(也可以不用实体类,使用HashMap替代)中的表格属性名必须和模板中的属性值相同。若行数据实体类属性添加@Name注解,则取注解的名字。
-
3、1.10.X版本中,RowRenderData获取不到文本数据了。
可以参考上面的案例,根据实际数据生成RowRenderData,这样代码扩展性也更强。 -
4、表格行从head头开始算,头为0
1
2// 表格行从head头开始算,头为0
table.insertNewTableRow(startRow);