IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

trouver une cellule excel


Sujet :

Shell et commandes GNU

  1. #1
    Membre averti
    Inscrit en
    Février 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 55
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    awk '{ if (NR==12) print $0}' tester.xls
    Merci d'avance

  2. #2
    Membre Expert Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Par défaut
    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 : 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
     
    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 !

  3. #3
    Rédacteur
    Avatar de lavazavio
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 673
    Par défaut
    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 rubriques Linux et Virtualisation
    Mes Articles
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
    N'oubliez pas de consulter les FAQ virtualisation et les cours et tutoriels Virtualisation
    Man pages en français

  4. #4
    Membre averti
    Inscrit en
    Février 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 55
    Par défaut
    oui je parle d'un fichier excel je tarvaille avec OpenOffice.org Calc mais si vous voulez je peux le convertir en CSV

  5. #5
    Membre Expert Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Par défaut
    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.

  6. #6
    Rédacteur
    Avatar de lavazavio
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 673
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 rubriques Linux et Virtualisation
    Mes Articles
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
    N'oubliez pas de consulter les FAQ virtualisation et les cours et tutoriels Virtualisation
    Man pages en français

  7. #7
    Membre Expert Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    awk -F";" '{ if (NR==3) print $2}' tester.xls
    est équivalent à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    awk  'BEGIN {FS = ";"} { if (NR==3) print $2}' tester.xls

  8. #8
    Membre averti
    Inscrit en
    Février 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 55
    Par défaut
    Bonjour s'il vous plait comment je peux ouvrir et écrire dans une nouvelle onglet excel Merci d'avance

  9. #9
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    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

  10. #10
    Invité
    Invité(e)
    Par défaut
    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.

  11. #11
    Rédacteur
    Avatar de lavazavio
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 673
    Par défaut
    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 rubriques Linux et Virtualisation
    Mes Articles
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
    N'oubliez pas de consulter les FAQ virtualisation et les cours et tutoriels Virtualisation
    Man pages en français

  12. #12
    Membre averti
    Inscrit en
    Février 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 55
    Par défaut
    Bonjour
    j'ai compris que je ne peut pas ouvrir une nouvelle feuille excel et la remplir à l'aide des commandes unix

  13. #13
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    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

  14. #14
    Membre averti
    Inscrit en
    Février 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 55
    Par défaut
    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

  15. #15
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  16. #16
    Membre averti
    Inscrit en
    Février 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 55
    Par défaut
    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

  17. #17
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    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

Discussions similaires

  1. Renommer une cellule excel
    Par Oaurelius dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/11/2005, 17h36
  2. Importer le contenu d'une cellule Excel vers Access
    Par deaqu1 dans le forum Access
    Réponses: 7
    Dernier message: 05/11/2005, 15h26
  3. Affichage d'une cellule excel
    Par cciocc dans le forum ASP
    Réponses: 2
    Dernier message: 17/05/2005, 10h17
  4. Réponses: 4
    Dernier message: 15/04/2005, 15h25
  5. Récupérer la couleur d'une cellule excel par Delphi
    Par teamsebracing dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 05/06/2003, 14h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo