Lire valeur cellule Excel
Lire valeur cellule Excel
Bonjour,
Je découvre Actiona à l'instant. Le programme semble vraiment top et complet. Merci et Bravo JMGR !
1er problème pour une operation toute simple. Je n'arrive pas à stocker le contenu d'une cellule Excel dans une variable.
J'ai essayé l'action "Ecrire Presse-papier" mais rien La variable reste vide.
Pouvez-vous m'aiguiller sur l'action à utiliser ?
Merci d'avance
Patrick
Je découvre Actiona à l'instant. Le programme semble vraiment top et complet. Merci et Bravo JMGR !
1er problème pour une operation toute simple. Je n'arrive pas à stocker le contenu d'une cellule Excel dans une variable.
J'ai essayé l'action "Ecrire Presse-papier" mais rien La variable reste vide.
Pouvez-vous m'aiguiller sur l'action à utiliser ?
Merci d'avance
Patrick
Re: Lire valeur cellule Excel
Bonjour,
Si on veut récupérer les données contenues dans un classeur excel, le plus simple est d'enregistrer ce classeur en fichier csv
puis sous actiona de lire ce fichier csv ( via action Lire fichier texte ou en code)
Sinon il est possible via une action code de récupérer une cellule :
Les paramètres en entrée :
num_ligne et num_colonne
en sortie, récupération dans la variable cellule_a_recuperer.
Action code :
Cordialement.
Je reste un fan du logiciel que JMGR a conçu et réalisé.
Si on veut récupérer les données contenues dans un classeur excel, le plus simple est d'enregistrer ce classeur en fichier csv
puis sous actiona de lire ce fichier csv ( via action Lire fichier texte ou en code)
Sinon il est possible via une action code de récupérer une cellule :
Les paramètres en entrée :
num_ligne et num_colonne
en sortie, récupération dans la variable cellule_a_recuperer.
Action code :
Code: Select all
//=====
num_ligne=8
num_colonne=4
//=====
//=====
var souris=new Mouse();
var clavier= new Keyboard();
var presse_papier=new Clipboard();
fin_ligne =String.fromCharCode(10);
dlm_XLS =String.fromCharCode('09');
//=====
//=====
Execution.pause(200)
var pt_cliquer = new Point(500, 500);
souris.move(pt_cliquer);
souris.click();
//=====
//====
//=> Cntl A
//====
Execution.pause(200)
clavier.pressKey("controlLeft");
Execution.pause(200)
clavier.triggerKey("A");
Execution.pause(200)
clavier.releaseKey("controlLeft");
//=====
//=====
//=> Cntl C
//=====
Execution.pause(200);
clavier.pressKey("controlLeft");
clavier.triggerKey("C");
clavier.releaseKey("controlLeft")
//=====
//=====
//=> Recupérer copier/coller
//=====
Execution.pause(400);
presse_pap =presse_papier.text;
t_ligne_1 =presse_pap.split(fin_ligne);
t_ligne_2= t_ligne_1[num_ligne-1].split(dlm_XLS);
cellule_a_recuperer = t_ligne_2[num_colonne-1];
//=========================
Console.print(cellule_a_recuperer);
Je reste un fan du logiciel que JMGR a conçu et réalisé.
Re: Lire valeur cellule Excel
Bonjour Francois,
Entre-temps j'ai aussi trouvé l'approche en faisant Ctrl+C pour copier la cellule. Ca fonctionne.
Je crois que la fonction "lire un fichier" CSV serait intéressant car le but étant de copier-coller toute une colonne Excel dans un autre tableau d'un programme spécifique et vice-versa (du prg à Excel).
Où puis-je trouver des infos supplémentaires pour utiliser "Lire un fichier"? Et je ne sais pas comment stocker ces valeurs dans les variables quand il y en a plusieurs
Entre-temps j'ai aussi trouvé l'approche en faisant Ctrl+C pour copier la cellule. Ca fonctionne.
Je crois que la fonction "lire un fichier" CSV serait intéressant car le but étant de copier-coller toute une colonne Excel dans un autre tableau d'un programme spécifique et vice-versa (du prg à Excel).
Où puis-je trouver des infos supplémentaires pour utiliser "Lire un fichier"? Et je ne sais pas comment stocker ces valeurs dans les variables quand il y en a plusieurs
Re: Lire valeur cellule Excel
Bonjour,
Sur ce forum, il y a eu quelques questions autour des "csv" donc via "rechercher", il y a possibilité d'avoir quelque infos.
Sinon pour la lecture de fichiers, il y a le wiki d'actiona
Coté action :
https://wiki.actiona.tools/doku.php?id= ... adtextfile
Coté code :
https://wiki.actiona.tools/doku.php?id= ... data:file
Francois
Sur ce forum, il y a eu quelques questions autour des "csv" donc via "rechercher", il y a possibilité d'avoir quelque infos.
Sinon pour la lecture de fichiers, il y a le wiki d'actiona
Coté action :
https://wiki.actiona.tools/doku.php?id= ... adtextfile
Coté code :
https://wiki.actiona.tools/doku.php?id= ... data:file
Francois
Re: Lire valeur cellule Excel
Re bonjour François,
je crois que je n'y arriverai pas
Je ne connais pas le nombre de ligne de mon tableau et la colonne à copier n'est pas toujour la même.
Comment créer le nombre de variable correspondant à mon nombre de ligne et donc de valeur?
je crois que je n'y arriverai pas
Je ne connais pas le nombre de ligne de mon tableau et la colonne à copier n'est pas toujour la même.
Comment créer le nombre de variable correspondant à mon nombre de ligne et donc de valeur?
Re: Lire valeur cellule Excel
Bonjour,
Si tu as besoin de manipuler l'ensemble des cellules d'une colonne, il faut passer
par un tableau de variable.
C'est plus du Javascript que de l'Actiona.
Si tu ne connais pas, un site d'initiation : https://openclassrooms.com/courses/tout ... ableaux-11
Cordialement.
Si tu as besoin de manipuler l'ensemble des cellules d'une colonne, il faut passer
par un tableau de variable.
C'est plus du Javascript que de l'Actiona.
Si tu ne connais pas, un site d'initiation : https://openclassrooms.com/courses/tout ... ableaux-11
Cordialement.
Re: Lire valeur cellule Excel
Super
C'est exactement ce que je cherchais. J'avance à petit pas ,,, mais j'avance
Merci
Pour l'instant, je copie une cellule Excel après l'autre et je teste la valeur si non-vide avant de la stocker dans mon tableau (array) avec un compteur. Ca fonctionne !
[Edit]: J'aimerai que cela soit plus rapide et lire toute la colonne entière. J'arrive bien la récupérer, sauf que j'aimerai la stocker dans un tableau (array) et je n'y arrive pas.
Pour rappel: Je dois reprendre les données d'une colonne d'un fichier Excel (ou CSV), mais le nombre de colonne et de lignes varient d'un fichier à un autre.
C'est exactement ce que je cherchais. J'avance à petit pas ,,, mais j'avance
Merci
Pour l'instant, je copie une cellule Excel après l'autre et je teste la valeur si non-vide avant de la stocker dans mon tableau (array) avec un compteur. Ca fonctionne !
[Edit]: J'aimerai que cela soit plus rapide et lire toute la colonne entière. J'arrive bien la récupérer, sauf que j'aimerai la stocker dans un tableau (array) et je n'y arrive pas.
Pour rappel: Je dois reprendre les données d'une colonne d'un fichier Excel (ou CSV), mais le nombre de colonne et de lignes varient d'un fichier à un autre.
Re: Lire valeur cellule Excel
bonjour
Je suis parti de :
Je suis parti de :
Paramètre en entrée, le fichier csv, en sortie, le tableau t_last_col.Je dois reprendre les données d'une colonne d'un fichier Excel (ou CSV), mais le nombre de colonne et de lignes varient d'un fichier à un autre.
Code: Select all
//=========
rep_fichier_in= "C:/temp"
nom_fichier_in= "test.csv"
fin_ligne =String.fromCharCode(10);
//=========
//=========
// charger ligne CSV en tableau
//=========
var fich_in = new File();
fich_in_chemin_complet= rep_fichier_in + "/" + nom_fichier_in
fich_in.open(fich_in_chemin_complet,File.ReadOnly| File.Text);
au_km = fich_in.readText();
fich_in.close();
t_ligne =au_km.split(fin_ligne);
nb_lignes= t_ligne.length
//=========
//=========
// Charger la derniere colonne
//=========
var t_last_col = [];
t_last_col.length = t_ligne.length;
for (i=0;i<t_ligne.length;i=i+1){
t_ligne2 =t_ligne[i].split(";");
t_last_col[i]=t_ligne2[t_ligne2.length-1];
}; // fin boucle i
//=========
// afficher cette derniere col
//=========
Console.print( t_last_col)
Re: Lire valeur cellule Excel
Bonjour Francois,
Je te remercie pour ton aide. Mon problème est comment reprendre (paramètre de sortie) chacune de ces valeurs dans une variable de type tableau array. Car ensuite je dois les entrer une à une dans un tableau d'un programme spécifique.
J'y arrive en récupérant 1 cellule à la fois et en la stockant dans mon array var[1], var[2], etc.. , mais ce n'est pas assez rapide. J'aimerai récupérer la colonne entière en une seule fois et la traiter ensuite sous Actionaz dans un tableau de type array.
C'est cette dernière partie que je sais pas faire...
Je sais pas si je m'exprime bien .... désolé
Je te remercie pour ton aide. Mon problème est comment reprendre (paramètre de sortie) chacune de ces valeurs dans une variable de type tableau array. Car ensuite je dois les entrer une à une dans un tableau d'un programme spécifique.
J'y arrive en récupérant 1 cellule à la fois et en la stockant dans mon array var[1], var[2], etc.. , mais ce n'est pas assez rapide. J'aimerai récupérer la colonne entière en une seule fois et la traiter ensuite sous Actionaz dans un tableau de type array.
C'est cette dernière partie que je sais pas faire...
Je sais pas si je m'exprime bien .... désolé
Re: Lire valeur cellule Excel
rebonjour
Ainsi
t_last_col[0] contient la valeur de la derniere colonne pour la première ligne
t_last_col[k] contient la valeur de la derniere colonne pour la k+1 ligne
En javascript (comme dans beaucoup de langages) les tableaux commencent à 0 et pas à 1.
t_last_col est bien un tableau (array)J'aimerai récupérer la colonne entière en une seule fois et la traiter ensuite sous Actionaz dans un tableau de type array.
Ainsi
t_last_col[0] contient la valeur de la derniere colonne pour la première ligne
t_last_col[k] contient la valeur de la derniere colonne pour la k+1 ligne
En javascript (comme dans beaucoup de langages) les tableaux commencent à 0 et pas à 1.
Re: Lire valeur cellule Excel
Ha oui mince effectivement ça focntionne
Mais n'est-ce pas adaptable en lisant une colonne entière Excel? Car cela va être trop compliquer de chaque fois exporter en format CSV. J'ai plein de colonnes et de feuilles excel à traiter.
Je me dit que si on arrive à stocker la colonne entière dans une seule variable, on doit pouvoir décortiquer chaque ligne dans un tableau array? Non?
Il me manque juste ça pour continuer Grrr...
[EDIT]: Si je copie la colonne Excel dans un fichier.csv et que j'utilise ta méthode, j'arrive bien à reprendre chacunes des valeurs. Néanmoins cela m'embête de passer par un fichier tempon et donc un accès disque (que je ne veux pas). Grrr...
Mais n'est-ce pas adaptable en lisant une colonne entière Excel? Car cela va être trop compliquer de chaque fois exporter en format CSV. J'ai plein de colonnes et de feuilles excel à traiter.
Je me dit que si on arrive à stocker la colonne entière dans une seule variable, on doit pouvoir décortiquer chaque ligne dans un tableau array? Non?
Il me manque juste ça pour continuer Grrr...
[EDIT]: Si je copie la colonne Excel dans un fichier.csv et que j'utilise ta méthode, j'arrive bien à reprendre chacunes des valeurs. Néanmoins cela m'embête de passer par un fichier tempon et donc un accès disque (que je ne veux pas). Grrr...
Re: Lire valeur cellule Excel
Bonsoir,
Recupérer la dernière colonne ( qui n est donc pas toujours la même) sans passer par un fichier csv :
Via Actiona :
On fait un copier/coller de toute la feuille XLS.
puis on récupère le résultat global dans une variable.
puis on va isoler la dernière colonne.
En final cette dernière colonne est dans le tableau t_last_col.
Recupérer la dernière colonne ( qui n est donc pas toujours la même) sans passer par un fichier csv :
Via Actiona :
On fait un copier/coller de toute la feuille XLS.
puis on récupère le résultat global dans une variable.
puis on va isoler la dernière colonne.
En final cette dernière colonne est dans le tableau t_last_col.
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');
//=====
//=====
Execution.pause(500)
var pt_cliquer = new Point(500, 500);
souris.move(pt_cliquer);
souris.click();
//=====
//====
//=> Cntl A
//====
Execution.pause(200)
clavier.pressKey("controlLeft");
Execution.pause(200)
clavier.triggerKey("A");
Execution.pause(200)
clavier.releaseKey("controlLeft");
//=====
//=====
//=> Cntl C
//=====
Execution.pause(200);
clavier.pressKey("controlLeft");
clavier.triggerKey("C");
clavier.releaseKey("controlLeft")
//=====
//=====
//=> Recupérer copier/coller
//=====
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-1;break;}
// Console.print( t_ligne_1[i]);
}; // fin for i
if ( nb_lignes_utiles==0) {nb_lignes_utiles=i;}
//=========================
// Console.print(nb_lignes_utiles);
//=========
// Charger la derniere colonne
//=========
var t_last_col = [];
t_last_col.length = nb_lignes_utiles;
for (i=0;i<=nb_lignes_utiles;i=i+1){
t_ligne_2 =t_ligne_1[i].split(dlm_XLS);
t_last_col[i]=t_ligne_2[t_ligne_2.length-1];
}; // fin boucle i
//=========
// afficher cette derniere col
//=========
Console.print( t_last_col)
Re: Lire valeur cellule Excel
Super Merci François !!!
Je vais tester cela.
[edit]: J'ai aussi voulu tester l'écriture d'un tableau dans un fichier avec l'action Actionaz : "Ecriture fichier texte"
Texte:
pourquoi je n'ai que la dernierère valeur qui s'écrit dans le fichier?
Je vais tester cela.
[edit]: J'ai aussi voulu tester l'écriture d'un tableau dans un fichier avec l'action Actionaz : "Ecriture fichier texte"
Texte:
Code: Select all
for (var d=0; d<i; d++)
table[d];
Re: Lire valeur cellule Excel
Problème de syntaxe :
Avec for il faut () puis {}
Un bon résumé trouvé sur internet :
Avec for il faut () puis {}
Un bon résumé trouvé sur internet :
for (initialization; test condition; iteration statement){
Statement(s) to be executed if test condition is true
}
Re: Lire valeur cellule Excel
Me revoilà
Non cela n'a pas non plus fonctionné
Mais grace au forum j'ai trouvé la solution en Javascript pour ouvrir et écrire mes valeurs dans un fichier.
Pour un autre exercice, je copie une cellule excel pour la comparer à un valeur reprise d'un autre programme.
Sauf que quand je compare les valeurs, celle de Excel contient un "retour à ligne" et bien sûr pas ma valeur à comparer.
Comment puis-je modifier/corriger cela?
Non cela n'a pas non plus fonctionné
Mais grace au forum j'ai trouvé la solution en Javascript pour ouvrir et écrire mes valeurs dans un fichier.
Pour un autre exercice, je copie une cellule excel pour la comparer à un valeur reprise d'un autre programme.
Sauf que quand je compare les valeurs, celle de Excel contient un "retour à ligne" et bien sûr pas ma valeur à comparer.
Comment puis-je modifier/corriger cela?