7
votes

Comment lire une cellule Excel ayant également des valeurs nulles en Java ...?

J'utilise Apache POI 3.6. J'ai une colonne qui est vierge forte>. Je voudrais pouvoir le lire, puis passer à la colonne suivante. Même si je pouvais résoudre le problème nullpointerexception code> Je n'ai pu accéder à la cellule suivante.

Voici mon extrait de code: p>

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);


0 commentaires

5 Réponses :


2
votes

Vous devez vérifier si cellule! = null , car si une cellule n'existe pas dans une ligne, rangée.getcell (c) renvoie null


2 commentaires

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.



5
votes

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.


0 commentaires

13
votes

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: xxx

avec xxx


0 commentaires

0
votes

Essayez ceci xxx


0 commentaires

0
votes

merci venkat, ça marche pour moi aussi sauf

Pour ceux qui utilisent Apache 4.0.0 et plus, ils doivent le faire comme suit: xxx


0 commentaires