alibaba/easyexcel

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

Open

#3843 aperta il 18 giu 2024

Vedi su GitHub
 (0 commenti) (0 reazioni) (0 assegnatari)Java (7599 fork)batch import
help wanted

Metriche repository

Star
 (33.728 star)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

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

Guida contributor