当使用 Apache POI 设置样式时,通常需要创建 CellStyle 对象,并设置相关的样式属性,然后将这些样式应用到单元格中。以下是如何设置常见样式属性的详细讲解:
1. 字体样式
在 Apache POI 中,通过创建 Font 对象来设置字体样式,包括字体类型、大小、颜色、加粗、斜体等。
// 创建字体对象
Font font = workbook.createFont();
// 设置字体类型
font.setFontName("Arial"); // 字体类型为Arial,也可以是 "Calibri", "Times New Roman" 等
// 设置字体大小
font.setFontHeightInPoints((short) 12); // 字体大小为12号
// 设置字体颜色
font.setColor(IndexedColors.RED.getIndex()); // 字体颜色为红色,也可选其他颜色
// 设置加粗
font.setBold(true); // 设置为加粗
// 设置斜体
font.setItalic(true); // 设置为斜体
// 将字体应用到样式
CellStyle style = workbook.createCellStyle();
style.setFont(font);
2. 对齐方式
在 Apache POI 中,通过 setAlignment
和 setVerticalAlignment
方法来设置水平对齐和垂直对齐方式。
// 设置水平对齐方式
style.setAlignment(HorizontalAlignment.CENTER); // 水平居中对齐,也可选左对齐、右对齐
// 设置垂直对齐方式
style.setVerticalAlignment(VerticalAlignment.CENTER); // 垂直居中对齐,也可选顶部对齐、底部对齐
//垂直对齐方式:
//VerticalAlignment.TOP:将内容置于单元格顶部。
//VerticalAlignment.CENTER:将内容垂直居中对齐。
//VerticalAlignment.BOTTOM:将内容置于单元格底部。
3. 边框样式
边框样式包括边框的粗细、颜色、位置等属性。
// 设置边框样式
style.setBorderTop(BorderStyle.THIN); // 上边框细线,也可选 MEDIUM、THICK
style.setBorderBottom(BorderStyle.THIN); // 下边框细线,也可选 MEDIUM、THICK
style.setBorderLeft(BorderStyle.THIN); // 左边框细线,也可选 MEDIUM、THICK
style.setBorderRight(BorderStyle.THIN); // 右边框细线,也可选 MEDIUM、THICK
// 设置边框颜色
style.setTopBorderColor(IndexedColors.BLACK.getIndex()); // 边框颜色为黑色,也可选其他颜色
style.setBottomBorderColor(IndexedColors.BLACK.getIndex());
style.setLeftBorderColor(IndexedColors.BLACK.getIndex());
style.setRightBorderColor(IndexedColors.BLACK.getIndex());
4. 填充样式
填充样式包括背景颜色和填充模式。
// 设置背景颜色
style.setFillForegroundColor(IndexedColors.YELLOW.getIndex()); // 背景颜色为黄色,也可选其他颜色
// 设置填充模式
style.setFillPattern(FillPatternType.SOLID_FOREGROUND); // 实心填充,也可选其他填充模式
//填充模式:
//FillPatternType.SOLID_FOREGROUND:实心填充。
//FillPatternType.BRICKS:砖块填充,单元格会以砖块的形式填充。
//FillPatternType.DIAMONDS:菱形填充,单元格会以菱形的形式填充。
//除了这些还有很多其他填充方式
填充样式除了这些还有:
-
FillPatternType.LESS_DOTS:
- 这个填充模式会在单元格中使用较少的点来填充背景,形成一种点状填充效果,点的密度较低。
- 适合用于一种轻微的背景填充,使单元格的背景看起来不那么空白。
-
FillPatternType.LEAST_DOTS:
- 这个填充模式会在单元格中使用更少的点来填充背景,点的密度更低。
- 与 FillPatternType.LESS_DOTS 类似,但点的密度更少,用于创建更为轻微的点状背景填充效果。
-
FillPatternType.HORIZONTAL:
- 这个填充模式会在单元格中水平填充颜色,创建水平条纹效果。
- 适合用于创建水平条纹背景,使得单元格具有分隔的外观。
-
FillPatternType.VERTICAL:
- 这个填充模式会在单元格中垂直填充颜色,创建垂直条纹效果。
- 适合用于创建垂直条纹背景,使得单元格具有分隔的外观。
-
FillPatternType.DIAGONAL_UP:
- 这个填充模式会在单元格中沿着从左上角到右下角的对角线方向填充颜色。
- 适合用于创建对角线上升的背景填充效果。
-
FillPatternType.DIAGONAL_DOWN:
- 这个填充模式会在单元格中沿着从左下角到右上角的对角线方向填充颜色。
- 适合用于创建对角线下降的背景填充效果。
这些填充模式可以用于设置单元格的背景填充效果,增强单元格的可视化效果,使得 Excel 表格更具吸引力和可读性。
5. 数据格式
数据格式样式可以设置单元格中数据的显示格式,例如日期、数字、货币等格式。
// 设置数据格式为日期
CellStyle dateStyle = workbook.createCellStyle();
dateStyle.setDataFormat(createHelper.createDataFormat().getFormat("yyyy-MM-dd")); // 日期格式为yyyy-MM-dd