Apache POI XSSFFont getBold() 给出空指针异常
Apache POI XSSFFont getBold() give null pointer exception
我正在尝试检查 excel 中的字体是否为粗体或 not.I 每次我 运行 代码时总是出现空指针异常。
XSSFSheet sheet1 = workbook.getSheetAt(1);
XSSFRow row1 = sheet1.getRow(1);
XSSFCell cell4 = row1.getCell(4);
XSSFRichTextString val = cell4.getRichStringCellValue();
System.out.println(val.toString());
XSSFFont f = val.getFontAtIndex(0);
System.out.println(f.getBold()); <--- this line is where the problem at
val.toString() 工作正常。只有当我 运行 最后一行 f.getBold() 我会得到一个空指针异常,我不知道为什么。
如有任何帮助,我们将不胜感激!
来自Apache POI JavaDocs on XSSFRichTextString.getFontAtIndex(int):
Returns:
A copy of the font that's currently being applied at that index or null if no font is being applied or the index is out of range.
对于富文本字符串,字符串的一部分可以应用特定(不同)的字体,也可以使用单元格的默认字体。您的代码需要处理这两种情况
要应用字体,您需要做更多类似的事情:
XSSFRichTextString val = cell4.getRichStringCellValue();
XSSFFont f = val.getFontAtIndex(0);
if (f == null) {
// Default cell font applies
XSSFCellStyle style = cell4.getCellStyle().getFont();
}
我正在尝试检查 excel 中的字体是否为粗体或 not.I 每次我 运行 代码时总是出现空指针异常。
XSSFSheet sheet1 = workbook.getSheetAt(1);
XSSFRow row1 = sheet1.getRow(1);
XSSFCell cell4 = row1.getCell(4);
XSSFRichTextString val = cell4.getRichStringCellValue();
System.out.println(val.toString());
XSSFFont f = val.getFontAtIndex(0);
System.out.println(f.getBold()); <--- this line is where the problem at
val.toString() 工作正常。只有当我 运行 最后一行 f.getBold() 我会得到一个空指针异常,我不知道为什么。
如有任何帮助,我们将不胜感激!
来自Apache POI JavaDocs on XSSFRichTextString.getFontAtIndex(int):
Returns:
A copy of the font that's currently being applied at that index or null if no font is being applied or the index is out of range.
对于富文本字符串,字符串的一部分可以应用特定(不同)的字体,也可以使用单元格的默认字体。您的代码需要处理这两种情况
要应用字体,您需要做更多类似的事情:
XSSFRichTextString val = cell4.getRichStringCellValue();
XSSFFont f = val.getFontAtIndex(0);
if (f == null) {
// Default cell font applies
XSSFCellStyle style = cell4.getCellStyle().getFont();
}