基于CellRangeAddress实现动态指定单元格合并
注:
1、现有的开源EasyExcel等可以通过注解的方式对某些字段导出的时候合并。
2、我目前的业务需要根据复杂条件对于一部分相同内容的单元格合并,一部分可以不合并,因此需要把合并逻辑独立出来,实现自定义需求。
3、以下样例直接用的我的业务测试代码,同学们可以自己组装数据。样例是简单的相同元素合并,复杂逻辑只需要在样例的evaUnitRoleDatas 转mergeRowMap 这一段进行修改,其他部分逻辑不变。
4、代码有很多优化空间,贻笑大方了。
测试代码:
简单实体类:
@Data
public class EvaUnitRoleData {
/**
* 部门
*/
private String department;
/**
* 角色/项目成员
*/
private String teamMember;
}
测试类:
@Test
public void exportEvaUnitData() throws IOException {
//新建工作簿
XSSFWorkbook xssfWorkbook = new XSSFWorkbook();
//新建工作表
XSSFSheet sheet = xssfWorkbook.createSheet("角色预算表");
//数据库查询数据,样例数据可以自己组装
List<EvaUnitRoleData> evaUnitRoleDatas = evaUnitBgService.selectUnitRoleList

文章介绍了一种基于CellRangeAddress的Java方法,用于根据复杂条件动态合并Excel单元格。通过创建自定义逻辑,区别于开源库EasyExcel的简单注解方式,该示例展示了如何遍历数据,找出需要合并的行,并避免合并冲突,最终导出Excel文件。
最低0.47元/天 解锁文章
1633

被折叠的 条评论
为什么被折叠?



