Pour répondre à la question initiale, j'ai écrit un script qui permet de récupérer l'ensemble des cellules d'une feuille excel.
En final, variables utilisables :
- nb_lignes_utiles : le nombre de lignes remplies
- colonne_max : le nombre de colonnes remplies ( eventuellement pas pour toutes les lignes)
- t1_cell[][] , un tableau à 2 dimensions :
si on veut le contenu de la cellule située à la 6eme ligne, 17eme colonne : t1_cell[6][17]
IL faut une action fenêtre pour mettre au premier plan le classeur excel
puis une action code qui fait le traitement :
L'action code :
Code: Select all
//=====
var souris=new Mouse();
var clavier= new Keyboard();
var presse_papier=new Clipboard();
fin_ligne =String.fromCharCode(10);
dlm_XLS =String.fromCharCode('09');
//=====
//=====
// préparer le copier coller en se positionnant dans la feuille
//=====
Execution.pause(500)
var pt_cliquer = new Point(500, 500);
souris.move(pt_cliquer);
souris.click();
//=====
//=====
// Faire le copier coller via un cntl A cntl C
//=====
Execution.pause(200)
clavier.pressKey("controlLeft");
Execution.pause(200)
clavier.triggerKey("A");
Execution.pause(200)
clavier.releaseKey("controlLeft");
Execution.pause(200);
clavier.pressKey("controlLeft");
clavier.triggerKey("C");
clavier.releaseKey("controlLeft")
//=====
//=====
//=> Recupérer le copier/coller dans une variable
//=====
Execution.pause(400);
presse_pap =presse_papier.text;
//=========================
//=====
//=> Recupérer les N 1eres lignes avec au moins une cellule remplie
//=====
t_ligne_1 =presse_pap.split(fin_ligne);
nb_lignes_utiles=0;
for (i=0;i< t_ligne_1.length;i++){
re_1 = /"09"/gi;
t_ligne_1[i] = t_ligne_1[i].replace(re_1, "");
if ( t_ligne_1[i] == "") {nb_lignes_utiles=i;break;}
// Console.print( t_ligne_1[i]);
}; // fin for i
if ( nb_lignes_utiles==0) {nb_lignes_utiles=i;}
//=========================
//=========
// Chercher la derniere colonne remplie (inter lignes)
//=========
colonne_max=0;
for (i=0;i<=nb_lignes_utiles;i=i+1){
t_ligne_2 =t_ligne_1[i].split(dlm_XLS);
if ( t_ligne_2.length > colonne_max ) {colonne_max=t_ligne_2.length;}
}; // fin boucle i
//=========
//=========
// Remplir le tableau t_cell[][]
// Ce tableau commence à l indice 0
//=========
var t_cell = new Array(nb_lignes_utiles);
for (i=0;i< nb_lignes_utiles;i++){
zz =t_ligne_1[i].split(dlm_XLS);
nb_cols = zz.length; // nombre de colonnes effectivement remplies dans cette ligne
t_cell[i] = new Array(colonne_max);
t_cell[i] = zz;
for (j=0;j< colonne_max;j++){
t_cell[i][j] =zz[j];
} // fin boucle j
}; // fin boucle i
//=========
//=========
// Remplir le tableau t1_cell[][]
// Ce tableau commence à l indice 1
//=========
var t1_cell = new Array(nb_lignes_utiles+1);
for (i=1;i<= nb_lignes_utiles;i++){
t1_cell[i] = t_cell[i-1];
t1_cell[i] = new Array(colonne_max+1);
for (j=1;j<= colonne_max;j++){
t1_cell[i][j] = t_cell[i-1][j-1];
//Console.print(t1_cell[i][j])
} // fin boucle j
}; // fin boucle i
//=========
//==========
// Quelques exemples
//==========
Console.print("nombre lignes remplies : " + nb_lignes_utiles)
Console.print("nombre colonnes remplies : " + colonne_max)
Console.print("Valeurs de la cellule 3,5 : " + t1_cell[3][5] )