easyexcel 列设置样式
时间: 2025-05-05 09:50:59 浏览: 23
### 易于理解的 EasyExcel 列样式设置指南
在 EasyExcel 中,可以通过 `WriteCellStyle` 和 `HorizontalCellStyleStrategy` 来实现列样式的自定义。以下是具体的实现方式以及示例代码。
#### 使用 HorizontalCellStyleStrategy 设置列样式
通过创建一个 `HorizontalCellStyleStrategy` 对象并将其传递给写入器,可以为 Excel 的头部和单元格分别指定不同的样式。以下是一个完整的例子:
```java
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
import org.apache.poi.ss.usermodel.*;
import java.util.ArrayList;
import java.util.List;
public class EasyExcelStyleExample {
public static void main(String[] args) {
String fileName = "example_with_style.xlsx";
// 创建数据列表
List<DemoData> data = new ArrayList<>();
for (int i = 0; i < 10; i++) {
DemoData demoData = new DemoData();
demoData.setString("字符串" + i);
demoData.setDate(new java.sql.Date(System.currentTimeMillis()));
demoData.setDoubleData(0.56);
data.add(demoData);
}
// 定义头样式
WriteCell headStyle = createHeadCellStyle();
// 定义内容样式
WriteCell contentStyle = createContentCellStyle();
// 构建策略对象
HorizontalCellStyleStrategy horizontalCellStyleStrategy =
new HorizontalCellStyleStrategy(headStyle, contentStyle);
// 执行写操作
EasyExcel.write(fileName).registerWriteHandler(horizontalCellStyleStrategy)
.head(DemoData.class).sheet("模板").doWrite(data);
}
private static WriteCell createHeadCellStyle() {
Workbook workbook = newSSFWorkbook();
CellStyle cellStyle = workbook.createCellStyle();
Font font = workbook.createFont();
font.setFontHeightInPoints((short) 12); // 字体大小
font.setBold(true); // 加粗
cellStyle.setFillForegroundColor(IndexedColors.YELLOW.getIndex()); // 背景颜色黄色
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); // 填充模式
cellStyle.setAlignment(HorizontalAlignment.CENTER); // 居中对齐
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); // 垂直居中
return new WriteCell(null, null, cellStyle);
}
private static WriteCell createContentCellStyle() {
Workbook workbook = newWorkbook();
CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setBorderBottom(BorderStyle.THIN); // 下边框
cellStyle.setBorderLeft(BorderStyle.THIN); // 左边框
cellStyle.setBorderRight(BorderStyle.THIN); // 右边框
cellStyle.setBorderTop(BorderStyle.THIN); // 上边框
cellStyle.setAlignment(HorizontalAlignment.LEFT); // 靠左对齐
return new WriteCell(null, null, cellStyle);
}
}
```
上述代码实现了以下几个功能:
- **头部样式**:设置了加粗字体、背景颜色为黄色,并且文字水平垂直均居中[^1]。
- **内容样式**:设置了简单的表格线,并将文本靠左显示[^2]。
#### 关键类说明
1. **WriteCellStyle**: 表示单个单元格的样式配置。
2. **HorizontalCellStyleStrategy**: 提供了一种机制来统一应用头部和内容的样式。
3. **DemoData 类**: 这里假设有一个名为 `DemoData` 的实体类用于存储数据结构。
---
###
阅读全文
相关推荐


















