Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Apache POI XSSFFont getBold()给出空指针异常_Java_Apache_Apache Poi_Xlsx_Xssf - Fatal编程技术网

Java Apache POI XSSFFont getBold()给出空指针异常

Java Apache POI XSSFFont getBold()给出空指针异常,java,apache,apache-poi,xlsx,xssf,Java,Apache,Apache Poi,Xlsx,Xssf,我正在检查excel中的字体是否粗体。每次运行代码时,我都会收到一个空指针异常 XSSFSheet sheet1 = workbook.getSheetAt(1); XSSFRow row1 = sheet1.getRow(1); XSSFCell cell4 = row1.getCell(4); XSSFRichTextString val = cell4.getRichStringCellValue(); Sy

我正在检查excel中的字体是否粗体。每次运行代码时,我都会收到一个空指针异常

        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
瓦尔·托斯特林工作得很好。只有当我运行最后一行f.getBold时,我才会得到一个空指针异常,我不知道为什么

任何帮助都将不胜感激

来自:

返回:

当前应用于该索引的字体副本,如果未应用字体或索引超出范围,则为null

对于富文本字符串,字符串的一部分可以应用特定的不同字体,也可以使用单元格的默认字体。您的代码需要处理这两种情况

因此,要应用字体,您需要执行以下操作:

XSSFRichTextString val = cell4.getRichStringCellValue(); 
XSSFFont f = val.getFontAtIndex(0);
if (f == null) {
   // Default cell font applies
   XSSFCellStyle style = cell4.getCellStyle().getFont();
}

我检查了api,XSSFRichTextString没有返回单元格样式的方法。该单元格中的内容是4个粗体字,因此索引0应该不会有问题。是否有其他方法检查字体是否粗体?