java 导出excel 如何给字体加粗

java 导出excel 如何给字体加粗

作者:William Gu发布时间:2026-02-26阅读时长:0 分钟阅读次数:10

用户关注问题

Q
如何在Java中使用Apache POI设置Excel单元格字体加粗?

我正在使用Apache POI库在Java中生成Excel文件,想给某些单元格的字体设置为加粗样式,该怎么实现?

A

使用Apache POI为单元格字体加粗的步骤

在Apache POI中,可以通过创建一个Font对象并调用setBold(true)方法来设置字体加粗。然后将该Font对象应用到CellStyle中,最后将该样式应用到单元格。例如:

Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
Font font = workbook.createFont();
font.setBold(true); // 设置加粗
CellStyle style = workbook.createCellStyle();
style.setFont(font);
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("加粗字体");
cell.setCellStyle(style);
// 保存文件的相关代码

这样生成的单元格文本便会显示为加粗。

Q
Java中如何控制导出Excel字体样式,包括加粗和颜色?

除了加粗外,我想在Java代码里设置导出Excel字体颜色和其他样式,该如何做?

A

通过Font对象的属性定制字体样式

在Java使用Apache POI时,设置字体样式主要通过Font对象实现。除了调用setBold(true)加粗,还可以使用setColor(short color)设置字体颜色,setFontHeightInPoints(short size)设置字体大小,setFontName(String name)设置字体名称等。例如:

Font font = workbook.createFont();
font.setBold(true); // 设置加粗
font.setColor(IndexedColors.RED.getIndex()); // 红色字体
font.setFontHeightInPoints((short)12); // 字体大小
font.setFontName("Arial");

将这个font应用到CellStyle后,单元格中的文本就会按照定义显示。

Q
导出Excel时,Java代码如何复用字体加粗样式避免重复创建?

我需要给多个单元格设置同样的加粗字体样式,有没有方式避免每次都创建新的字体样式?

A

复用CellStyle和Font对象提升Excel导出效率

在使用Apache POI导出Excel时,建议提前创建一次字体加粗的Font和对应的CellStyle对象,然后在多个单元格中复用该样式,避免重复创建,提升性能。例如:

Font boldFont = workbook.createFont();
boldFont.setBold(true);
CellStyle boldStyle = workbook.createCellStyle();
boldStyle.setFont(boldFont);

// 之后给多个单元格设置加粗样式
cell1.setCellStyle(boldStyle);
cell2.setCellStyle(boldStyle);

这种方式既节省了内存,也让代码更清晰。