EasyExcel单元格内换行,合并单元格

发布于:2025-07-01 ⋅ 阅读:(20) ⋅ 点赞:(0)

一、单元格内换行

1、在需要换行的位置将 \n 或者 \r\n 替换为 String.valueOf((char)10) ,看是否有效。

2、第一步操作完成后如果还是无法换行,需要双击单元格才能换行,在导出的java实体类上加上以下注解

@ContentStyle(

horizontalAlignment = HorizontalAlignmentEnum.CENTER,

verticalAlignment = VerticalAlignmentEnum.CENTER,

wrapped = BooleanEnum.TRUE)

注释:

        HorizontalAlignmentEnum.CENTER:水平居中

        VerticalAlignmentEnum.CENTER:垂直居中

        wrapped = BooleanEnum.TRUE:使换行操作成功执行

二、合并单元格

将第一行所有数据列合并,填写表格说明

1、创建自定义合并策略

public class CustomMergeStrategy extends AbstractMergeStrategy {
    private final int firstRow;  // 合并起始行
    private final int lastRow;   // 合并结束行
    private final int firstCol;  // 合并起始列
    private final int lastCol;   // 合并结束列

    public CustomMergeStrategy(int firstRow, int lastRow, int firstCol, int lastCol) {
        this.firstRow = firstRow;
        this.lastRow = lastRow;
        this.firstCol = firstCol;
        this.lastCol = lastCol;
    }

    @Override
    protected void merge(Sheet sheet, Cell cell, Head head, Integer relativeRowIndex) {
        // 只在指定行触发合并操作
        if (relativeRowIndex != null && relativeRowIndex == firstRow) {
            // 创建合并区域并执行合并
            sheet.addMergedRegionUnsafe(new CellRangeAddress(
                firstRow, 
                lastRow, 
                firstCol, 
                lastCol
            ));
        }
    }
}

2、使用

// 创建合并策略:合并第1行数据,第0列到第9列
CustomMergeStrategy strategy = new CustomMergeStrategy(
    0,  // 起始行(数据行索引0)
    0,  // 结束行(数据行索引0)
    0,  // 起始列(第0列)
    9   // 结束列(第9列)
);

EasyExcel.write("output.xlsx", Data.class)
        .registerWriteHandler(strategy)
        .sheet("Sheet1")
        .doWrite(data);

 3、效果


网站公告

今日签到

点亮在社区的每一天
去签到