/ / Apache POI XSSFFont getBold () donne une exception de pointeur null - java, apache, apache-poi, xlsx, xssf

Apache POI XSSFFont getBold () donne une exception de pointeur nulle - Java, Apache, Apache-poi, xlsx, xssf

"J'essaie de vérifier si la police dans Excel est en gras ou non. J'ai continué à avoir une exception de pointeur nul à chaque fois que je lance le code.

        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 () fonctionne bien. c’est seulement lorsque j’aurai la dernière ligne f.getBold () que j’aurai une exception de pointeur null, je ne saurais pas pourquoi.

Toute aide serait appréciée!

Réponses:

0 pour la réponse № 1

Du Apache POI JavaDocs sur XSSFRichTextString.getFontAtIndex (int):

Résultats:

Une copie de la police qui est actuellement appliquée à cet index ou NULL si aucune police n’est appliquée ou si l’index est hors limites.

Avec une chaîne de texte enrichi, une section de la chaîne peut avoir une police spécifique (différente) appliquée ou utiliser la valeur par défaut pour la cellule. Votre code doit gérer les deux cas

Pour que la police soit appliquée, vous devez donc faire quelque chose de plus semblable à:

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