[alibaba/easyexcel]对象模板导出,实体属性存在bxxx命名格式,导出报表无法正常显示

2024-05-11 316 views
8

触发场景描述 对象模板导出,实体属性存在bxxx格式,无法正常导出数据,如果修改命名格式后,就能正常导出 image

触发Bug的代码

  if (beanMap.containsKey(name)) {    
                    Head head = (Head)ignoreMap.get(cellIndex);
                    WriteHandlerUtils.beforeCellCreate(this.writeContext, row, head, cellIndex, relativeRowIndex, Boolean.FALSE);
                    cell = WorkBookUtil.createCell(row, cellIndex);
                    WriteHandlerUtils.afterCellCreate(this.writeContext, cell, head, relativeRowIndex, Boolean.FALSE);
                    Object value = beanMap.get(name);
                    CellData cellData = this.converterAndSet(currentWriteHolder, excelContentProperty.getField().getType(), cell, value, excelContentProperty, head, relativeRowIndex);
                    WriteHandlerUtils.afterCellDispose(this.writeContext, cellData, cell, head, relativeRowIndex, Boolean.FALSE);
                    beanMapHandledSet.add(name);
                }

image

提示的异常或者没有达到的效果 image

回答

0

已经复现成功,现尝试修复一下 @MandalasWang

4

已经复现成功,现尝试修复一下 @MandalasWang

我觉得这是apache poi库的bug,跟easyexcel没关系,在 src/main/java/com/alibaba/excel/write/executor/ExcelWriteAddExecutor.java 的119行这里的问题 BeanMap beanMap = BeanMap.create(oneRowData); 这一段导致map中的大小写出错,从而导致bug @zhuangjiaju @MandalasWang

6

lombok第二个字母大写是不符合命名要求的,不能写这种代码

5

lombok第二个字母大写是不符合命名要求的,不能写这种代码

嗯是的,的确如您所说,这样确实不符合lombok命名规范,容易出现问题。但是造成目前这个bug的原因可能是poi库的锅。

7

建议驼峰式,后续想办法兼容

8

已经在3.0.0-beta1 版本修复,beta版本会在一个月内升级成正式版。