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:
J'espère m' être fais comprendre...
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(); } } }
Si quelqu'un à une solution ...?
Merci![]()
Partager