Unexpected missing row when some rows already present
Bonjour à tous,
J'ai rencontré cette erreur qui me fait trés peur! :calim2::aie:
Code:
1 2 3 4 5 6 7 8 9
|
Exception in thread "main" java.lang.RuntimeException: Unexpected missing row when some rows already present
at org.apache.poi.hssf.usermodel.HSSFSheet.setPropertiesFromSheet(HSSFSheet.java:174)
at org.apache.poi.hssf.usermodel.HSSFSheet.<init>(HSSFSheet.java:121)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:275)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:188)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:305)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:286)
at Extraction.main(Extraction.java:92) |
Cela vient de cette ligne (en rouge dans le 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 39 40 41 42 43 44 45 46 47 48
|
try {
InputStream is = new FileInputStream("C:/Donnees/Aide_Manager/extract_25012012.xls");
//POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("extract.xls")); //pour ouvrir les fichiers xls
HSSFWorkbook wb = new HSSFWorkbook(is);
HSSFSheet sheet = wb.getSheetAt(0);
HSSFRow row = null;
HSSFCell cell = null;
int n = 0;
int i = 0;//compte le nombre d'agent
for (Iterator rowIt = sheet.rowIterator(); rowIt.hasNext();){
row = (HSSFRow) rowIt.next();
Agent a = new Agent();
n++;// pour avoir le numéro de chaque ligne lue
if(row.getRowNum() == 6 && row.getCell(0) != null){//pour obtenir la date de l'extract et déterminer sa semaine dans l'année.
date_extract = row.getCell(0).getStringCellValue().substring(3,13);//on récupère la date
System.out.println("date_extract: "+date_extract);
//faire une vérification pour savoir:
//si la date du fichier n'est pas trouvée sur
InputStream istr = new FileInputStream("C:/Donnees/Aide_Manager/date_extract1.xls");
HSSFWorkbook wbd = new HSSFWorkbook(istr); HSSFSheet sheetd = wbd.getSheetAt(0);
HSSFRow rowd = null;
HSSFCell celld = null;
date_extract="24/01/2012";
for (Iterator r = sheetd.rowIterator(); r.hasNext();){
rowd = (HSSFRow) r.next();
celld = rowd.getCell(0);
//System.out.println("lalalalalala");
if(celld != null ){
if(celld.getCellType()==0){
System.out.println("c'est un nombre: "+celld.getNumericCellValue());
}else{
System.out.println("c'est une chaine: "+celld.getStringCellValue());
if(celld.getStringCellValue().equals(date_extract)){// si on trouve que la date_extract est = à la date trouvée dans le fichier
System.out.println("DATE TROUVEE Ds le fichier !");
System.out.println("CETTE EXTRACT A DEJA ETE UTILISEE !!");
System.out.println("MERCI D'UTILISER UN AUTRE EXTRACT CONCERNANT UNE AUTRE DATE !");
date_stockee_trouvee=true;
}
}
dernLigneTrouvee = rowd.getCell(0).getRowIndex();
}
} |
Si quelqu'un a une idée ???
Merci