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

Recover bold text in cell using POI

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

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

这不会提供任何关于粗体文本的信息。但我已经看到 getCellStyle() 拥有多种方法,例如 "getFontIndex()"。是否存在知道文本是否为粗体的方法?

这有点复杂,但包含粗体属性的是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 支持还不完整,因此如有必要,您将不得不进行一些转换以从中检索字体。