autopoi-web 1.4.6
需求表述:
动态表单导出,列不固定,相同内容的列合并

问题表述:
相同数据的列合并存在应该合并的单元格未合并,见图(第二列 17、18,32、33 行应该是被合并到上一列的,没有合并)

测试代码:

@test
public void testo1(){
try {
List entity = new ArrayList();

    ExcelExportEntity excelentity = new ExcelExportEntity("课程名称", "ckname");
    excelentity.setNeedMerge(true);
    entity.add(excelentity);

    ExcelExportEntity  e2=new ExcelExportEntity("课程老师", "teachername");
    e2.setMergeVertical(true);
    entity.add(e2);

    excelentity = new ExcelExportEntity("学生", "students");
    List<ExcelExportEntity> temp = new ArrayList<ExcelExportEntity>();
    temp.add(new ExcelExportEntity("姓名", "name"));
    temp.add(new ExcelExportEntity("性别", "sex"));

    excelentity.setList(temp);
    entity.add(excelentity);

    List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
    for (int i=0;i<10 ;i++){
            Map<String,Object> map=new HashMap<>();
        if (i<5){
            map.put("ckname","课程");
            map.put("teachername","老师");
        }else {
            
            map.put("teachername","老师1");
        }

        List<Map<String,Object>> st_list=new ArrayList<>();
        for(int j=0; j<3; j++){
            Map<String,Object>  c_map=new HashMap<>();
            c_map.put("name","姓名:"+i+"_"+j);
            c_map.put("sex","年龄:"+i+"_"+j);
            st_list.add(c_map);
        }
        map.put("students",st_list);

        list.add(map);
    }
    Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("测试", "测试"), entity, list);
    FileOutputStream fos = new FileOutputStream("E:/ExcelExportForMap.tt9.xls");
    workbook.write(fos);
    fos.close();
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

}

结果图:
输入图片说明