Open playadota opened 4 years ago
遇到同样问题,你可以这样解决模本合并单元格自动拆分的问题,但是填充从第二列开始样式不对我也没有解决 excelWriter.fill(new FillWrapper("list",peoples), fillConfig,writeSheet);这行之后 使用 excelWriter.write(communityThings,writeSheet); 给这个对象CommunityThing,设置public class CommunityThing { @ExcelProperty(value = "",index = 0) private String community; @ContentLoopMerge(eachRow = 1,columnExtend = 5) @ExcelProperty(value = "",index = 1) private String something;
},我这里是让1到五行合并
最后别忘记在EasyExcel.write(fileName,CommunityThing.class).head(variableTitleHead())将对象放进去,并将head设置为null,例如 private List<List
list.add(head0);
list.add(head1);
return list;
}
因为我这里只有两个属性,所以只设置了两个null的list
具体代码
public void compositeFill() {
List
// 模板注意 用{} 来表示你要用的变量 如果本来就有"{","}" 特殊字符 用"\{","\}"代替
// {} 代表普通变量 {.} 代表是list的变量 {前缀.} 前缀可以区分不同的list
String templateFileName =
TestFileUtil.getPath() + "demo" + File.separator + "fill" + File.separator + "newhope-delivery-template.xlsx";
String fileName = "f:/" + "compositeFill" + System.currentTimeMillis() + ".xlsx";
ExcelWriter excelWriter = EasyExcel.write(fileName,CommunityThing.class).head(variableTitleHead()).withTemplate(templateFileName).build();
WriteSheet writeSheet = EasyExcel.writerSheet().build();
FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
// 如果有多个list 模板上必须有{前缀.} 这里的前缀就是 data1,然后多个list必须用 FillWrapper包裹
//这里需要注意遍历list的时候允许list中对象的属性为"",但是不允许为null否者会报npe
excelWriter.fill(new FillWrapper("list",peoples), fillConfig,writeSheet);
excelWriter.write(communityThings,writeSheet);
String deliverTotal="北京市丰台区的老王北京市丰台区的老王北京市丰台区的老王北京市丰台区的老王北京市丰台区的老王北京市丰台区的老王北京市丰台区的老王北京市丰台区的老王北京市丰台区的老王北京市丰台区的老王北京市丰台区的老王北京市丰台区的老王北京市丰台区的老王北京市丰台区的老王北京市丰台区的老王北京市丰台区的老王北京市丰台区的老王北京市丰台区的老王北京市丰台区的老王北京市丰台区的老王北京市丰台区的老王";
String deliverTotalLength=":";
for (int i = 0; i < deliverTotal.length()/2+1; i++) {
deliverTotalLength+="\t ";
}
Map<String, Object> map = new HashMap<String, Object>();
map.put("deliveryPeopson", "北京市丰台区的老王");
map.put("deliverMilkDate","2021-04-37");
map.put("deliverMilkTime","下午送");
map.put("deliverTotal",deliverTotal);
// map.put("deliverTotalLength",deliverTotalLength); excelWriter.fill(map,writeSheet);
// 别忘记关闭流
excelWriter.finish();
}
目前不支持合并单元格的填充
大佬啥时候支持下合并单元格第二行的样式问题,填充excel时,列表项 合并横向的单元格后,从第二行开始没有边框线了