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