J'utilise Apache POI 3.6. J'ai une colonne qui est Voici mon extrait de code: p> nullpointerexception code> Je n'ai pu accéder à la cellule suivante.
HSSFCell cell = row.getCell(c);
String value = null;
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_FORMULA:
value = "FORMULA value=" + cell.getCellFormula();
break;
case HSSFCell.CELL_TYPE_NUMERIC:
value = "NUMERIC value=" + cell.getNumericCellValue();
break;
case HSSFCell.CELL_TYPE_STRING:
value = "STRING value=" + cell.getStringCellValue();
break;
case HSSFCell.CELL_TYPE_BLANK:
value="";
break;
case HSSFCell.CELL_TYPE_ERROR:
value="error";
break;
default:
break;
}
System.out.println("CELL col=" + cell.getColumnIndex() + " VALUE=" + value);
5 Réponses :
Vous devez vérifier si cellule! = null code>, car si une cellule n'existe pas dans une ligne,
rangée.getcell (c) code> renvoie
null code> p>
Comme la "cellule" est un objet, d'obtenir la valeur "== 'ou"! = "L'opérateur ne peut pas être utilisé, autant que je sache. N'est-ce pas? Mais la cellule existe réellement mais il a une valeur "vide", c'est-à-dire aucune valeur.
Vous pouvez utiliser == ou! = Pour vérifier les valeurs null, ce que vous devriez faire. La cellule n'existe probablement pas (dans la structure de données), c'est pourquoi vous avez un problème NullpointerException.
Eh bien, vous pouvez rechercher NULL avant votre instruction Switch, ou vous pouvez modifier l'appel à Row.getCell que vous faites. Vérification de la Javadoc pour POI Il existe 2 formes, la première est ce que vous utilisez, la seconde dispose d'un paramètre supplémentaire, du type Row.MissingCellpolicy, où vous pouvez transmettre une valeur qui transformerait automatiquement les cellules nules en blancs. P >
J'ai enfin eu ce que je veux. Je remercie mezmo pour cela.
Je veux partager l'extrait de code exact à modifier.
Il suffit de remplacer la ligne ayant: avec p>
Essayez ceci
merci venkat, ça marche pour moi aussi sauf
Pour ceux qui utilisent Apache 4.0.0 et plus, ils doivent le faire comme suit: