EasyExcel单元格内换行,合并单元格
一、单元格内换行
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;}@Overrideprotected 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、效果