Bonjour,

J'aimerai faire un traitement qui me parait complexe à faire avec POI.

Je souhaiterai au parcours de mon documents:
prendre les cellules de la colonne 0 commencant par Agent (avec un startWith)

Si avant l'autre cellule comportant Agent, il y'a dans la colonne 4 (de toutes lignes entre le 1er "Agent" et le 2ème "Agent") écrit "validation" {(c'est que je je n'arrive pas à faire !)

Je sais pas si c'est faisable car j'arrive pas à faire ce traitement!

Voici ce que je fais pour le moment:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
 
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream.GetField;
import java.text.ParseException;
import java.util.Iterator;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Row;
 
public class Extraction {
 
	public static void main(String[] args) throws ParseException {
		// Colonne du fichier
		String chaine; //pour récupérer les Agents
		long occurence; // pour récupérer les valeur des validations
		int valid = 0; // pour compter le nombre de validation de chaque agent
		int n_l_valid = 0; // pour récupérer la ligne de chaque validation
		int width = 10;
		int height = 10;
		String monTableau[][]= new String[width][height];
		boolean b;
		//int compteur = 0;
		HSSFCell valid_recupere;
		int x = 0, y = 0;
 
		try {
			POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("extract.xls"));
			HSSFWorkbook wb = new HSSFWorkbook(fs);
			HSSFSheet sheet = wb.getSheetAt(0);
			HSSFRow row = null;
			HSSFCell cell = null;
			int n = 0;
			int i = 0;//compte le nombre d'agent
			int k = 0;
			// System.out.println("ligne N°| Valeur");
			for (Iterator rowIt = sheet.rowIterator(); rowIt.hasNext();){
				row = (HSSFRow) rowIt.next();
				// n pour savoir le numéro de la ligne en cours 
				n++;
				//System.out.println("n : "+ n);// pour avoir le numéro de chaque ligne lue
				if(row.getCell(0) != null){//si les lignes de la colonne 1 ne sont pas null
					if(row.getCell(0).getStringCellValue().startsWith("Agent")){// et si on apercoit "Agent"
						chaine=row.getCell(0).getStringCellValue();
						System.out.println(chaine); //on affiche la ligne de la colonne 1
						System.out.println("i: "+i);
						monTableau[0][i] = chaine;
						i++;
					}	
				}
				if(row.getCell(1) != null){// si les lignes de la colonne 2 ne sont pas null
					if(row.getCell(1).getStringCellValue().startsWith("Validation")){// et si on apercoit "validation"
						chaine=row.getCell(1).getStringCellValue();
						valid++; //on incrémente notre compteur valid
						n_l_valid = n; // on récupère le numéro de ligne de la Validation
						//System.out.println(chaine);
						//System.out.println("Numéro de la validation: "+valid);
						//System.out.println("numéro de la ligne de la validation: "+n_l_valid);
						n_l_valid--;
						valid_recupere=sheet.getRow(n_l_valid).getCell(4);
						System.out.println("Validation: "+valid_recupere);
						//monTableau[][]=n;
 
						if(valid_recupere.CELL_TYPE_NUMERIC==0){
						monTableau[1][k] = Integer.toString((int) valid_recupere.getNumericCellValue());
						}else{
						//monTableau[0][k] = valid_recupere.getStringCellValue();
						}
						k++;
					}
				}
			}//fin du for
 
 
            for(String sousTab[] : monTableau)
            {
               x = 0;
              for(String str : sousTab)
              {     
            	  if(monTableau[x][y]!=null){
                    //System.out.println("La valeur de la nouvelle boucle est : " + str);
                    System.out.println("La valeur du tableau à l'indice [" + x + "][" +y +"] est : " +  monTableau[x][y] + "\n");
            	  }
                x++;
              }
              y++;
            }
			//System.out.println("total: " + compteur);
		} catch (FileNotFoundException e){
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
 
}
J'espère m' être fais comprendre...
Si quelqu'un à une solution ...?
Merci