一、单元格内换行
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、效果