使用 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
支持还不完整,因此如有必要,您将不得不进行一些转换以从中检索字体。
我正在尝试检查单元格(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
支持还不完整,因此如有必要,您将不得不进行一些转换以从中检索字体。