alibaba/easyexcel

自定义行高 无法进入重写方法

Open

#3,843 创建于 2024年6月18日

在 GitHub 查看
 (0 评论) (0 反应) (0 负责人)Java (7,599 fork)batch import
help wanted

仓库指标

Star
 (33,728 star)
PR 合并指标
 (30 天内没有已合并 PR)

描述

public class CustomCellWriteHeightConfig extends AbstractRowHeightStyleStrategy { /** * 默认高度 */ private static final Integer DEFAULT_HEIGHT = 300;

@Override
protected void setHeadColumnHeight(Row row, int relativeRowIndex) {
}

@Override
protected void setContentColumnHeight(Row row, int relativeRowIndex) {
    Iterator<Cell> cellIterator = row.cellIterator();
    if (!cellIterator.hasNext()) {
        return;
    }

    // 默认为 1行高度
    Integer maxHeight = 1;
    while (cellIterator.hasNext()) {
        Cell cell = cellIterator.next();
        switch (cell.getCellTypeEnum()) {
            case STRING:
                if (cell.getStringCellValue().indexOf("\n") != -1) {
                    int length = cell.getStringCellValue().split("\n").length;
                    maxHeight = Math.max(maxHeight, length);
                }
                break;
            default:
                break;
        }
    }

    row.setHeight((short) (maxHeight * DEFAULT_HEIGHT));
}

}EasyExcel.registerWriteHandler(new CustomCellWriteWeightConfig()) .registerWriteHandler(new CustomCellWriteHeightConfig()); 以上代码AbstractRowHeightStyleStrategy 类中进入方法也调用但是没有执行我重写的方法,我设置自定义列宽没有问题。 easyExcel的版本是2.2.7

贡献者指南