Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/02/2011, 14h37   #1
 
Inscription : février 2008
Messages : 49
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 49
Points : -4
Points : -4
Par défaut trouver une cellule excel

Bonjour je veux trouver une cellule dans le fichier EXCEL exemple Cellule "M12" j'ai exécuter un code pour sélectionner la ligne 21 mais je n'ai pas pu référencer sur la colonne M un peu d'aide s'il vous plait voila le code:
Code :
awk '{ if (NR==12) print $0}' tester.xls
Merci d'avance
nizar24 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 10/02/2011, 16h10   #2
Membre éprouvé
 
Avatar de plxpy
 
Homme
Ingénieur
Inscription : janvier 2009
Messages : 299
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 47
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : janvier 2009
Messages : 299
Points : 428
Points : 428
Voici les 30 premières lignes du dump d'un classeur Excel (le fichier .xls) où je n'ai mis que dans la case "A1" le texte :

"forum http://www.developpez.net" :

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
 
mac0908mt070:Desktop pascal$ od -c developpez.xls | head -30
0000000  320 317 021 340 241 261 032 341  \0  \0  \0  \0  \0  \0  \0  \0
0000020   \0  \0  \0  \0  \0  \0  \0  \0   >  \0 003  \0 376 377  \t  \0
0000040  006  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0 001  \0  \0  \0
0000060  001  \0  \0  \0  \0  \0  \0  \0  \0 020  \0  \0 026  \0  \0  \0
0000100  001  \0  \0  \0 376 377 377 377  \0  \0  \0  \0  \0  \0  \0  \0
0000120  377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377
*
0001000  375 377 377 377   !  \0  \0  \0 003  \0  \0  \0 004  \0  \0  \0
0001020  005  \0  \0  \0 006  \0  \0  \0  \a  \0  \0  \0  \b  \0  \0  \0
0001040   \t  \0  \0  \0  \n  \0  \0  \0  \v  \0  \0  \0  \f  \0  \0  \0
0001060   \r  \0  \0  \0 016  \0  \0  \0 017  \0  \0  \0 020  \0  \0  \0
0001100  021  \0  \0  \0 022  \0  \0  \0 023  \0  \0  \0 024  \0  \0  \0
0001120  025  \0  \0  \0 376 377 377 377 376 377 377 377 376 377 377 031
0001140  031  \0  \0  \0 032  \0  \0  \0 033  \0  \0  \0 034  \0  \0  \0
0001160  035  \0  \0  \0 036  \0  \0  \0 037  \0  \0  \0      \0  \0  \0
0001200  376 377 377 377 376 377 377 377 377 377 377 377 377 377 377 377
0001220  377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377
*
0002000    R  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
0002020   \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
*
0002100  002  \0 005  \0 377 377 377 377 377 377 377 377 002  \0  \0  \0
0002120       \b 002  \0  \0  \0  \0  \0 300  \0  \0  \0  \0  \0  \0   F
0002140   \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0 030 202 374 063
0002160    3 311 313 001 027  \0  \0  \0 200 001  \0  \0  \0  \0  \0  \0
0002200    W  \0   o  \0   r  \0   k  \0   b  \0   o  \0   o  \0   k  \0
0002220   \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
*
0002300  022  \0 002 001 004  \0  \0  \0 377 377 377 377 377 377 377 000
0002320   \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
Penses-tu vraiment pourvoir l'attaquer avec awk ??? Une sauvegarde "texte", peut-être, mais directement un ".xls" ...

awk est un "processeur" de fichier texte alors un fichier binaire, qui plus est, avec un format propriétaire !
plxpy est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 10/02/2011, 16h13   #3
Rédacteur/Modérateur
 
Avatar de lavazavio
 
Homme
Inscription : décembre 2004
Messages : 1 653
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 1 653
Points : 2 025
Points : 2 025
Bonjour,

Tu parles d'un fichier Excel et non d'un csv, c'est bien ca ?
Comment arrives-tu à lire le contenu de ton xls ? Les fichiers Excel sont des fichiers binaires et non de simples fichiers texte...
__________________
Rédacteur et Modérateur rubrique Linux
Articles dvp.com
Man pages en français
lavazavio est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 10/02/2011, 16h22   #4
 
Inscription : février 2008
Messages : 49
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 49
Points : -4
Points : -4
oui je parle d'un fichier excel je tarvaille avec OpenOffice.org Calc mais si vous voulez je peux le convertir en CSV
nizar24 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 10/02/2011, 16h49   #5
Membre éprouvé
 
Avatar de plxpy
 
Homme
Ingénieur
Inscription : janvier 2009
Messages : 299
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 47
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : janvier 2009
Messages : 299
Points : 428
Points : 428
En fait, pour l'attaquer avec awk, tu n'as pas trop le choix ...

Tu dois avoir, lors de la "sauvegarde sous", pour un format texte/csv, le choix entre quelques séparateurs de champs/colonnes (ton FS pour awk). Attention aussi aux double-quotes qui peuvent encadrer le contenu de tes colonnes (de mémoire). Fais l'essai, tu verras ça très vite.
plxpy est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 10/02/2011, 16h51   #6
Rédacteur/Modérateur
 
Avatar de lavazavio
 
Homme
Inscription : décembre 2004
Messages : 1 653
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 1 653
Points : 2 025
Points : 2 025
Citation:
Envoyé par nizar24 Voir le message
oui je parle d'un fichier excel je tarvaille avec OpenOffice.org Calc mais si vous voulez je peux le convertir en CSV
Le csv serait plus approprié.
Il suffit de définir tes séparateurs de champs et voila !

Par exemple, si tu choisis les ";" comme séparateurs, ton fichier csv sera de ce type :
Code :
1
2
3
ligne1champ1;ligne1champ2;ligne1champ3;
ligne2champ1;ligne2champ2;ligne2champ3;
ligne3champ1;ligne3champ2;ligne3champ3;
Pour récupérer le champ 2 de la ligne 3 (=B3), la commande serait :
Code :
awk -F";" '{ if (NR==3) print $2}' tester.xls
Explication :
-F";" = séparateur
NR==3 = numéro de la ligne
$2 = 2eme champ
__________________
Rédacteur et Modérateur rubrique Linux
Articles dvp.com
Man pages en français
lavazavio est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 10/02/2011, 17h36   #7
Membre éprouvé
 
Avatar de plxpy
 
Homme
Ingénieur
Inscription : janvier 2009
Messages : 299
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 47
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : janvier 2009
Messages : 299
Points : 428
Points : 428
petite précision

les séparateurs "FS" dans ma dernière réponse et "F" dans celle de lavazavio ne sont pas contradictoires : "F" c'est l'option de la commande awk, "FS" c'est le nom de la variable correspondante dans le script awk, variable qui peut être initialisée dans une partie BEGIN du script

Code :
1
2
 
awk -F";" '{ if (NR==3) print $2}' tester.xls
est équivalent à

Code :
1
2
 
awk  'BEGIN {FS = ";"} { if (NR==3) print $2}' tester.xls
plxpy est déconnecté   Envoyer un message privé Réponse avec citation 30
Vieux 21/02/2011, 12h00   #8
 
Inscription : février 2008
Messages : 49
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 49
Points : -4
Points : -4
Bonjour s'il vous plait comment je peux ouvrir et écrire dans une nouvelle onglet excel Merci d'avance
nizar24 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 21/02/2011, 15h06   #9
Responsable Modération
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 978
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 978
Points : 5 995
Points : 5 995
Bonjour.

Sinon, il me semble qu'un fichier csv, ça a pour extension .csv pas .xls ...
L’extension n'est pas importante pour le shell, mais ça l'est pour le tableur je crois.

Cordialement,
Idriss
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/02/2011, 15h16   #10
Membre Expert
 
Avatar de Nudger
 
Homme Thomas Arnaud
Directeur de projet
Inscription : octobre 2010
Messages : 452
Détails du profil
Informations personnelles :
Nom : Homme Thomas Arnaud
Âge : 36
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Directeur de projet
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : octobre 2010
Messages : 452
Points : 1 012
Points : 1 012
Envoyer un message via Skype™ à Nudger
Bonjour,

Citation:
Envoyé par nizar24 Voir le message
Bonjour s'il vous plait comment je peux ouvrir et écrire dans une nouvelle onglet excel Merci d'avance
Pour ça, à mon avis, il faut abandonner l'idée d'utiliser un script shell.
__________________
www.nudge.org Surveillez et optimisez vos applications Java
Nudger est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 21/02/2011, 15h39   #11
Rédacteur/Modérateur
 
Avatar de lavazavio
 
Homme
Inscription : décembre 2004
Messages : 1 653
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 1 653
Points : 2 025
Points : 2 025
Citation:
Envoyé par nizar24 Voir le message
Bonjour s'il vous plait comment je peux ouvrir et écrire dans une nouvelle onglet excel Merci d'avance
Un fichier CSV est différent d'un fichier Excel.
Un CSV est juste un fichier texte sous forme tabulaire.
Un CSV ne peut donc pas contenir plusieurs onglets car ce n'est pas un fichier Excel.
__________________
Rédacteur et Modérateur rubrique Linux
Articles dvp.com
Man pages en français
lavazavio est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 21/02/2011, 15h47   #12
 
Inscription : février 2008
Messages : 49
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 49
Points : -4
Points : -4
Bonjour
j'ai compris que je ne peut pas ouvrir une nouvelle feuille excel et la remplir à l'aide des commandes unix
nizar24 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 21/02/2011, 17h17   #13
Responsable Modération
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 978
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 978
Points : 5 995
Points : 5 995
Bonsoir.

Citation:
Envoyé par nizar24 Voir le message
j'ai compris que je ne peut pas ouvrir une nouvelle feuille excel et la remplir à l'aide des commandes unix
Une feuille Excel non, un fichier csv peut cependant convenir ... il est interprété par la plupart des tableurs mais ça reste limité au simple affichage (et calculs) de données dans les cellules.

Toutefois, une fois chargé dans OOo ou Excel, il est tout à fait possible de le convertir dans un autre format.

Cordialement,
Idriss
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/02/2011, 17h28   #14
 
Inscription : février 2008
Messages : 49
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 49
Points : -4
Points : -4
Citation:
Envoyé par ok.Idriss Voir le message
Bonsoir.



Une feuille Excel non, un fichier csv peut cependant convenir ... il est interprété par la plupart des tableurs mais ça reste limité au simple affichage (et calculs) de données dans les cellules.

Toutefois, une fois chargé dans OOo ou Excel, il est tout à fait possible de le convertir dans un autre format.

Cordialement,
Idriss
Bonsoir est ce que vous pouvez me dire comment ça ce fait pour un fichier csv et merci d'avance
nizar24 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 21/02/2011, 17h33   #15
Responsable Modération
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 978
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 978
Points : 5 995
Points : 5 995
Re

Citation:
Envoyé par nizar24 Voir le message
Bonsoir est ce que vous pouvez me dire comment ça ce fait pour un fichier csv et merci d'avance
Pour cela, je me permet de citer lavazavio qui l'explique déjà très bien (je n'ai changé que l’extension du fichier tester) :

Citation:
Envoyé par lavazavio Voir le message
Il suffit de définir tes séparateurs de champs et voila !

Par exemple, si tu choisis les ";" comme séparateurs, ton fichier csv sera de ce type :
Code :
1
2
3
ligne1champ1;ligne1champ2;ligne1champ3;
ligne2champ1;ligne2champ2;ligne2champ3;
ligne3champ1;ligne3champ2;ligne3champ3;
Pour récupérer le champ 2 de la ligne 3 (=B3), la commande serait :
Code :
awk -F";" '{ if (NR==3) print $2}' tester.csv
Explication :
-F";" = séparateur
NR==3 = numéro de la ligne
$2 = 2eme champ
Si ces explications ne te suffisent pas, une simple recherche t'en dira plus

Cordialement,
Idriss
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/02/2011, 14h50   #16
 
Inscription : février 2008
Messages : 49
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 49
Points : -4
Points : -4
Salut je crois que j'ai mal expliquer
s'il vous plait j'ai un fichier excel (l'extension .xls ou .csv ce n'est pas un problème) j'ai ecrit un code qui permet d'inserer des tableaux de chaque mois dans une meme feuille alors je veux que lorsque l'année sera changer on insere les tableaux dans une autre feuille expemple:
pour 2011 12 tableaux dans la feuille 1 (nommé 2011)
pour 2012 12 tableaux dans la feuille 2 (nommé 2012)
j'espère maintenant que j'ai bien expliqué et Merci d'avance
nizar24 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 22/02/2011, 15h04   #17
Responsable Modération
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 978
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 978
Points : 5 995
Points : 5 995
Bonjour.

Comme ça a été dit, un fichier csv n'est qu'un fichier texte structuré de telle sorte que cela puisse être affiché dans un tableur.
On ne peut donc pas basculer sur un autre onglet (ou une autre feuille) avec ce type de fichier.

Je pense que le plus simple c'est de passer par plusieurs fichiers .csv (un pour chaque année) ...

Cordialement,
Idriss
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h50.


 
 
 
 
Partenaires

Hébergement Web