阿里开源工具easyexcel怎么设置填充内容的自定义行高

在生成excel文件的时候,使用list填充表格内容,但是,出现了内容行高不一致的问题,出现的问题如下图所示

第一行是填充模板设置的行高(35),第二,第三行是自动生成的行高(35.1),没办法改变,第四行到下边的所有行行高都为(21),现在想让所有行都和第一行高度一致,怎么解决?求助!

首先,试验了工具注解@ContentRowHeight(value = 35),但是没有生效。

然后,百度搜索资料查到了如下内容设置策略,

// 内容的策略
        WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
// 这里需要指定 FillPatternType 为FillPatternType.SOLID_FOREGROUND 不然无法显示背景颜色.头默认了 FillPatternType所以可以不指定
        contentWriteCellStyle.setWrapped(true);
// 这个策略是 头是头的样式 内容是内容的样式 其他的策略可以自己实现
        HorizontalCellStyleStrategy horizontalCellStyleStrategy =
                new HorizontalCellStyleStrategy(null, contentWriteCellStyle);
        ExcelWriter excelWriter = EasyExcel.write(fileName).registerWriteHandler(horizontalCellStyleStrategy).withTemplate(templateFileName).build();

发现加上后,连文件都无法生成,报空指针异常。

最后,试验了百度搜到的自定义样式类,发现不适用。

 

通过设置写入的处理器可以指定行高,进行列表填充时,自动生成的行都是统一的高度:
处理器:

@Component
public class CostomCellWriteHeightHandler extends AbstractColumnWidthStyleStrategy {

    @Override
    protected void setColumnWidth(WriteSheetHolder writeSheetHolder, List<CellData> cellDataList, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) {
        cell.getRow().setHeightInPoints(40f);
    }
}

在获取ExcelWriter时使用:

ExcelWriter excelWriter = EasyExcelFactory.write(outputStream)
                    .withTemplate(classPathResource.getInputStream())
                    .excelType(ExcelTypeEnum.XLS)
                    .registerWriteHandler(costomCellWriteHeightHandler).build();

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

2种方式:

1.定义模板,拷贝的每一行根据模板style生成

2.设置CellStyle.