3
触发场景描述 在类【Xxx】的属性上自定义了一个注解(每个字段上都有这个自定义注解【Yyy】),通过这个注解的某个属性值来作为表头。 触发Bug的代码
List<Xxx> data = getAllData();
ServletOutputStream sos = response.getOutputStream();
Field[] fields = Xxx.class.getDeclaredFields();
List<List<String>> headers = new ArrayList<>();
List<String> list;
for (Field field : fields) {
if (field.isAnnotationPresent(Yyy.class)) {
list = new ArrayList<>();
list.add(field.getAnnotation(Yyy.class).name());
headers.add(list);
}
}
new ExcelWriterBuilder().file(sos).registerConverter(new ObjectToStringConverter()).excelType(ExcelTypeEnum.XLSX)
.autoCloseStream(true)
//.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
.sheet(0, "datas")
.head(Xxx.class).doWrite(data);
提示的异常或者没有达到的效果 excel列发生错位