【问题标题】:Recover bold text in cell using POI使用 POI 恢复单元格中的粗体文本
【发布时间】:2016-05-26 09:24:05
【问题描述】:
我正在尝试检查单元格(Excel 文件)中的文本是否为粗体。
现在我正在使用:
final CellStyle cellStyle = row.getCell(cellIndex).getCellStyle().toString();
这不会提供有关粗体文本的任何信息。但是我已经看到 getCellStyle() 拥有几种方法,例如“getFontIndex()”。是否存在一个知道文本是否为粗体的?
【问题讨论】:
标签:
java
excel
apache-poi
xls
【解决方案1】:
这有点令人费解,但是包含 Bold 属性的是 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 支持并不完整,因此如果需要,您必须进行一些转换以从中检索字体。