easyexcel
easyexcel copied to clipboard
设置表头head的时候,如果自定义list,用arrays的方式会报错
如果用这种方式会报错的
// 创建表头数据(这里假设三行表头)
List<List<String>> multiHeader = new ArrayList<>();
multiHeader.add(Arrays.asList("基础信息", "详细信息")); // 第一行
multiHeader.add(Arrays.asList("姓名", "年龄", "地址", "邮箱")); // 第二行
multiHeader.add(Arrays.asList("电话")); /
应该在com.alibaba.excel.metadata.property.ExcelHeadProperty#initHeadRowNumber方法中的如下代码进行优化
List<String> list = head.getHeadNameList();
优化为
List<String> list =new ArrayList( head.getHeadNameList());
List<List<String>>
类型的表头应该这样构建才对:
// 此处举例为2行表头
List<List<String>> multiHeader = new ArrayList<>();
multiHeader.add(Arrays.asList("基础信息", "姓名"));
multiHeader.add(Arrays.asList("基础信息", "年龄"));
multiHeader.add(Arrays.asList("详细信息", "地址"));
multiHeader.add(Arrays.asList("详细信息", "邮箱"));
multiHeader.add(Arrays.asList("详细信息", "电话"));
每一个子集合中的第一个元素表示第一行表头,第二个元素表示第二行表头,以此类推。 相邻且相同名称的分组表头会自动合并。