EasyExcel.write两级表头设置文字居中显示
时间: 2025-01-25 07:20:14 浏览: 40
### 使用 EasyExcel 设置两级表头文字居中显示
为了实现两级表头的文字居中显示,在使用 `EasyExcel.write` 方法时,可以通过自定义样式来达到这一效果。具体来说,可以创建一个 `WriteCellStyle` 对象并配置其中心对齐属性[^1]。
以下是具体的代码示例:
```java
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.alibaba.excel.write.handler.AbstractCellWriteHandler;
import org.apache.poi.ss.usermodel.*;
import java.util.List;
public class ExcelUtil {
public static void writeWithCenteredHeader(String fileName, String sheetName, List<List<String>> head, List<List<Object>> data) {
// 创建写入器
EasyExcel.write(fileName)
.registerWriteHandler(new CenterHeadAndContentStyle())
.sheet(sheetName)
.head(head)
.doWrite(data);
}
private static class CenterHeadAndContentStyle extends AbstractCellWriteHandler {
@Override
protected void afterCellDispose(WriteHandlerContext context, Cell cell, Head head, Integer relativeRowIndex,
Boolean isHead) {
if (isHead || relativeRowIndex == null) { // 只处理头部单元格或数据行首列
Workbook workbook = context.getWriteWorkbook().getWorkbook();
CellStyle style = workbook.createCellStyle();
Font font = workbook.createFont();
style.setFont(font);
// 居中文本
style.setAlignment(HorizontalAlignment.CENTER);
style.setVerticalAlignment(VerticalAlignment.CENTER);
cell.setCellStyle(style);
}
}
}
}
```
此方法通过继承 `AbstractCellWriteHandler` 类重写了 `afterCellDispose` 函数,在该函数内部判断当前处理的是不是表头部分(即 `isHead=true`),如果是,则应用中心对齐样式的单元格格式给这些表头单元格[^2]。
阅读全文
相关推荐


















