2 pièce(s) jointe(s)
JTable à Excel : nullPointerException
Bonjour,
J'ai ce code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| public SaveFile(File file, JFrame frame, JTable table) { String val;
save.setDialogTitle("Sauvegarder feuille de débit");
save.setFileFilter(new FileNameExtensionFilter("Excel","xls"));
int returnval = save.showSaveDialog(null);
if (returnval == JFileChooser.APPROVE_OPTION) {
savePath = save.getSelectedFile().getAbsolutePath() + "xls";
}
file = new File(savePath);
Workbook workbook = new HSSFWorkbook();
Sheet sheet = workbook.createSheet("Débit");
Row row = sheet.createRow(0);
TableModel model = table.getModel();
for (int i = 0; i < model.getColumnCount(); i++) {
row.createCell(i).setCellValue(model.getColumnName(i));
}
for (int i = 0; i < model.getRowCount(); i++) {
row = sheet.createRow(i + 1);
for (int j = 0; j < model.getColumnCount(); j++) {
if(!model.getValueAt(i, j).equals(null))
val = model.getValueAt(i, j).toString();
else
val = "0";
row.createCell(j).setCellValue(val);
}
}
FileOutputStream fileOut;
try {
fileOut = new FileOutputStream(savePath);
workbook.write(fileOut);
fileOut.close();
workbook.close();
} catch (IOException e) {
System.out.println(e);
e.printStackTrace();
}
} |
Le problème c'est qu'a la ligne 21, je dois tester mon Model qui contient des vectors pour les valeurs pour vérifier qu'il ne soit pas null. Car si mon JTable avait une case vide, mon vector contient un trou de valeur :
Pièce jointe 175872
La table ressemble à ça :
Pièce jointe 175875
Il me faudrait donc modifier la ligne 21 de façon qu'elle arrive à vérifier que le vector ne soit pas inexistant sans renvoyer un NullPointerException.
Merci à ceux qui prendront le temps de me répondre.