null pointer exception apache poi

salut, nous avons lu xls et xlsx fichier à l'aide d'apache poi tion de notre programme java, le problème est que nous obtenons exception de pointeur null avec les deux raisons ... la première 1 est la cellule vide dont nous avons déjà résolu et les autres, c'est quand nous faisons le choix d'une certaine colonne qui n'ont pas de record..

notre programme vous demande le chemin pour le fichier excel, puis la fiche spécifique numéro de fichier et le numéro de colonne de la feuille que vous souhaitez lire.. ici c'est le code pour lire fichier xls

public void readXLSFile()throws IOException{
InputStream ExcelFileToRead = new FileInputStream(path);
HSSFWorkbook wb = new HSSFWorkbook(ExcelFileToRead);
HSSFSheet sheet=wb.getSheetAt(sheetname);
HSSFRow row; 
HSSFCell cell;
Iterator rows = sheet.rowIterator();
list1.clear();
while (rows.hasNext())
{
headers.clear();
row=(HSSFRow) rows.next();
//Iterator cells = row.cellIterator();
headers.add("contents");
cnt = cnt+1;
cell = row.getCell(cols);
if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING)
{
//System.out.println(cell.getStringCellValue()+"(string)");
list.add(cell.getStringCellValue());
d.add(cell.getStringCellValue());
list1.add(new KeyValuePair(cell.getStringCellValue(),""));
}
else if(cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC)
{
//System.out.println(cell.getNumericCellValue()+"(numeric)");
double num = cell.getNumericCellValue();
String num2 = String.valueOf(num);
list.add(num2);
d.add(num2);
list1.add(new KeyValuePair(num2,""));
}
else if(cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN)
{
//System.out.println(cell.getBooleanCellValue()+"(boolean)");
String bool = String.valueOf(cell.getBooleanCellValue());
list.add(bool);
d.add(bool);
list1.add(new KeyValuePair(bool,""));
}
else
{
//U Can Handel Boolean, Formula, Errors
}
//System.out.println();
}
arrey = list.toArray(new String[list.size()]);
data.add(d);
//System.out.println(data);
model = new DefaultTableModel();
table_1.setModel(model);
table_1.setModel(model);
model.setColumnIdentifiers(new String[] {"row","contents"});
for (KeyValuePair p : list1){
int nor=table_1.getRowCount();
int n2 = nor +1;
n1 = Integer.toString(n2);
// model.addColumn(new String [] {n1});   
model.addRow(new String[] {n1,p.key, p.value});
}
//  model.addColumn(new String[] {n1});
}

la variable sheetname est pour le fichier excel du numéro de la feuille de

HSSFSheet sheet=wb.getSheetAt(sheetname);

et la variable cols est pour la colonne que vous souhaitez lire

cell = row.getCell(cols);

on peut lire la première colonne de chaque feuille, et aussi la seconde colonne de la deuxième feuille, mais quand j'ai édité mon fichier de test dès maintenant le programme peut lire uniquement la première colonne de chaque feuille.. l'erreur est null pointer exception..le souhaitez vous pouvez aider merci d'avance

vous pouvez imprimer la trace de la pile de l'exception. Je vais vous aider si nous pouvions savoir quel énoncé est en fait à l'origine d'exception.
C'est un peu déroutant... Vous utilisez sheetname qui semble être une Chaîne de caractères avec HSSFSheet sheet=wb.getSheetAt(sheetname);. getSheetAt est toujours d'accepter la valeur numérique de la feuille d'index. S'il vous plaît confirmer.
c'est la seule erreur je suis de java.lang.NullPointerException par le chemin, je entourent la méthode mentionnée ci-dessus à essayer de l'attraper..
le sheetname variable et les cols sont deux entiers cause il accepte uniquement numérique je viens de nommé de cette façon, désolé si cela vous semble confus 🙂
Peut-être que vous pouvez partager la ligne où l'erreur se produit et la stacktrace.

OriginalL'auteur y.reyes | 2013-08-06