我正在尝试检查单元格(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支持还不完整,所以如果需要,您必须进行一些强制转换才能从中检索字体。

10-06 10:45