使用POI在单元格中恢复粗体文本

时间:2016-05-26 09:24:05

标签: java excel apache-poi xls

我试图检查单元格(Excel文件)中的文本是否为粗体。 现在我正在使用:

final CellStyle cellStyle = row.getCell(cellIndex).getCellStyle().toString();

这并未提供有关粗体文本的任何信息。但是我发现getCellStyle()拥有几个方法,比如" getFontIndex()"。知道文本是否为粗体是否存在?

1 个答案:

答案 0 :(得分:3)

这有点令人费解,但Font包含粗体属性,而不是CellStyle。您可以通过迂回方式从CellStyle检索它。

Workbook book = row.getSheet().getWorkbook();
CellStyle style = row.getCell(cellIndex).getCellStyle();
int fontIndex = style.getFontIndex();
Font font = book.getFontAt(fontIndex);
if (font.getBold()) {
    // if you are here, the font is bold
}

这将告诉您CellStyle是否包含粗体字体。虽然单元格中的文本可以是RichTextString,但它可以是与CellStyle中指定的完全不同的字体。 RichTextString支持虽然不完整,但如果需要,您必须进行一些转换以从中检索字体。