首先准备一个模板:
效果图:
直接上代码:
1.自定义表格时候需要自定义一个实体类:`在这里插入代码
@Data
@AllArgsConstructor
@NoArgsConstructor
public class IegaDataObj {
//数据list
private List< RowRenderData> iegalList;
//列表名称标志
private String button;
//人员判断list
private List<Map<String,Object>> Alists;}
自定义插件:
public class IegalClassRender extends DynamicTableRenderPolicy {
int gy =0;
int bj =0;
int zy =0;
int lps =0;
int xy =0;
int dy =0;
int kl =0;
int tr =0;
int as =0;
int ga =0;
//数据所在起始行
int startRow = 1;
@Override
public void render(XWPFTable xwpfTable, Object object) {
//判断对象是否为空
if(null ==object) return;
//word标签对应的对象取出包含数据的对象
IegaDataObj iegaDataList = (IegaDataObj)object;
//获取对象中的数据list
List< RowRenderData> list = iegaDataList.getIegalList();
//开始对数据进行操作并且操作表格
//判list是否为空
if(null!=list){
//删除word我们标签对向的表格的数据行
xwpfTable.removeRow(startRow);
//开始迭代数据并且生成行
for (int i = list.size()-1; 0 <=i ; i--) {
//获取数据的长度(便于后面操作列操作)
int length = list.get(i).getCells().size();
//XWPFTableRow是操作行的类
XWPFTableRow insertRow = xwpfTable.insertNewTableRow(startRow);
//创建列,从0开始算
for (int j = 0; j < length; j++) insertRow.createCell();
//将数据渲染入行
MiniTableRenderPolicy.Helper.renderRow(xwpfT