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 :

copier des colonnes dans un fichier excel


Sujet :

Shell et commandes GNU

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 55
    Points : 21
    Points
    21
    Par défaut copier des colonnes dans un fichier excel
    Bonjour je suis debutant je veux copier une colonne d'un fichier texte chaque heure dans un fichier excel avec l'utilisation de awk .
    Merci d'avance pour votre aide

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 584
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 584
    Points : 19 461
    Points
    19 461
    Par défaut
    Bonjour,

    c'est un peu court.

    quel est le format du contenu du fichier "texte" ? quel est le format du contenu du fichier "excel", avant et après avoir utilisé awk ?

    Qu'as-tu déjà essayé ?

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 55
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    Bonjour,

    c'est un peu court.

    quel est le format du contenu du fichier "texte" ? quel est le format du contenu du fichier "excel", avant et après avoir utilisé awk ?

    Qu'as-tu déjà essayé ?
    Le fichier texte se compose d'une seule colonne numérique qui change chaque heure et chaque colonne doit etre copié dans une colonne du fichier excel pour avoir plusieurs colonnes saisies dans le fichier excel

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 584
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 584
    Points : 19 461
    Points
    19 461
    Par défaut
    awk est une contrainte ? sinon il y a paste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $ cat fichier.excel
    123;456;789
    456;789;123
    789;123;456
    $ cat fichier.txt 
    123
    456
    789
    $ echo "$(paste -d';' fichier.excel fichier.txt)" >fichier.excel
    $ cat fichier.excel
    123;456;789;123
    456;789;123;456
    789;123;456;789

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 55
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    awk est une contrainte ? sinon il y a paste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $ cat fichier.excel
    123;456;789
    456;789;123
    789;123;456
    $ cat fichier.txt 
    123
    456
    789
    $ echo "$(paste -d';' fichier.excel fichier.txt)" >fichier.excel
    $ cat fichier.excel
    123;456;789;123
    456;789;123;456
    789;123;456;789
    merci bien mais je veux que chaque colonne du fichier excel prend une colonne des variables exemple
    colonne A colonne B colonne C
    123 456 789
    456 789 123
    789 123 456
    et aprés execution du script on obtient
    colonne A colonne B colonne C colonne D
    123 456 789 123
    456 789 123 456
    789 123 456 789

  6. #6
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    alors il suffit de faire comme indiqué sans conserver le séparateur ";"

  7. #7
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 55
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par frp31 Voir le message
    alors il suffit de faire comme indiqué sans conserver le séparateur ";"
    Bonjour voila un exemple réel pour remplir le tableau tester.xls à partir du fichier test.txt
    et Merci beaucoup pour votre aide
    Fichiers attachés Fichiers attachés

  8. #8
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 584
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 584
    Points : 19 461
    Points
    19 461
    Par défaut
    mais quel est ton problème ? tu ne trouves pas le manuel de awk pour en tester un bout de code ?
    quelques indices : getline, et l'option -v

  9. #9
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 55
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    mais quel est ton problème ? tu ne trouves pas le manuel de awk pour en tester un bout de code ?
    quelques indices : getline, et l'option -v
    Désolé mais je n'ai pas pu utiliser getline() et je ne sais pas comment elle fonctionne je veux un peu d'aide pour avancer

  10. #10
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 584
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 584
    Points : 19 461
    Points
    19 461
    Par défaut
    voilà comment je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk -vDate=$(date +'%m/%d/%Y') -vnewData=test.txt '(NF > 1){ if(FNR >= 1){line = $0"\t"Date}else{line = $0; getline <newData; line = line"\t"$0} };(line){print line}' tester.xls
    ce n'est probablement pas optimisé : je ne me sers pas assez souvent de awk, mais ça a l'air de fonctionner
    edit: err, non ça ne fonctionne pas; je cherche encore...

    mais franchement : tout sur GNU awk !

  11. #11
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 584
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 584
    Points : 19 461
    Points
    19 461
    Par défaut
    ah !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     awk '(NF > 1){ if(n){line = $0; getline <newData; line = line"\t"$0}else{line = $0"\t"Date; n++} };(line){print line}' Date=$(date +'%m/%d/%Y') newData="test.txt" tester.xls
    non, mais

  12. #12
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 55
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    ah !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     awk '(NF > 1){ if(n){line = $0; getline <newData; line = line"\t"$0}else{line = $0"\t"Date; n++} };(line){print line}' Date=$(date +'%m/%d/%Y') newData="test.txt" tester.xls
    non, mais
    Merci bien mais ce code ne peut pas faire l'incrémentation des colonnes selon la date chaque jour il remplace la date du jour précédent dans la mème colonne

  13. #13
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 584
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 584
    Points : 19 461
    Points
    19 461
    Par défaut
    qu'appelles-tu incrémentation ?

  14. #14
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 55
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    qu'appelles-tu incrémentation ?
    L'incrémentation: Augmentation de la valeur d'une variable à chaque phase de l'exécution d'un programme.
    Et pour ce code il ne peut pas faire le passage des colonnes automatiquement selon la date chaque jour, il remplace la date du jour précédent dans la mème colonne

  15. #15
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 584
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 584
    Points : 19 461
    Points
    19 461
    Par défaut
    je crois que je commence à comprendre : les données du fichier.txt doivent aller sous la date à laquelle a été créé ce fichier. c'est ça ?

    est-ce que tu peux exporter le fichier.xls au format csv ? parce que le format donné n'est pas hyper pratique

  16. #16
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 55
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    je crois que je commence à comprendre : les données du fichier.txt doivent aller sous la date à laquelle a été créé ce fichier. c'est ça ?

    est-ce que tu peux exporter le fichier.xls au format csv ? parce que le format donné n'est pas hyper pratique
    OK je vais l'exporter au format csv

  17. #17
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 55
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par nizar24 Voir le message
    OK je vais l'exporter au format csv
    voila le fichier au format csv
    Fichiers attachés Fichiers attachés

  18. #18
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 584
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 584
    Points : 19 461
    Points
    19 461
    Par défaut
    ah ! oui, c'est mieux, et surtout plus complet !

    voilà ce que j'ai fait en awk :
    Code pseudo-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
    # avant de lire un fichier, protection des contre-obliques de la date
    #
    # recherche de la ligne sur laquelle est la date
    # énumaration des champs
       # si la date ne coincide pas
       # incrémentation d'une variable n
    # autrement
       #affection d'une variable N = n+1
    # affichage de la igne
    # passage à la ligne suivante
    #
    # si N existe
       # affichage des champs < N 
       # concaténation des champs > N dans une variable
       # récupération d'une ligne du deuxième fichier
       # affichage de la ligne du deuxième fichier et de la variable concaténée
       # affichage saut de ligne
       # purge de la variable concaténée
    # autrement
       #affichage de la ligne
    par contre, une fois le fichier 'resultat' affiché dans OOoCalc, les pourcentages de la colonne mise à jour sont alignés à gauche...?

  19. #19
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 55
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    ah ! oui, c'est mieux, et surtout plus complet !

    voilà ce que j'ai fait en awk :
    Code pseudo-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
    # avant de lire un fichier, protection des contre-obliques de la date
    #
    # recherche de la ligne sur laquelle est la date
    # énumaration des champs
       # si la date ne coincide pas
       # incrémentation d'une variable n
    # autrement
       #affection d'une variable N = n+1
    # affichage de la igne
    # passage à la ligne suivante
    #
    # si N existe
       # affichage des champs < N 
       # concaténation des champs > N dans une variable
       # récupération d'une ligne du deuxième fichier
       # affichage de la ligne du deuxième fichier et de la variable concaténée
       # affichage saut de ligne
       # purge de la variable concaténée
    # autrement
       #affichage de la ligne
    par contre, une fois le fichier 'resultat' affiché dans OOoCalc, les pourcentages de la colonne mise à jour sont alignés à gauche...?
    Bonjour les pourcentages sont centrées

  20. #20
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 584
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 584
    Points : 19 461
    Points
    19 461
    Par défaut
    ah ? moi, j'ai tout à droite, sauf les pourcentages de la colonne mise à jour...?

    mais là, je ne pourrai pas aider, j'utilise OOoCalc, une fois tous les pfff.......jamais

Discussions similaires

  1. Code VBA pour copier-coller des colonnes d'un fichier Excel à un autre
    Par User Name dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/01/2014, 23h30
  2. Réponses: 0
    Dernier message: 17/03/2011, 21h42
  3. [Toutes versions] Copier une colonne d'un fichier Excel dans un fichier TEXT.
    Par jerem_orga dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/08/2010, 23h41
  4. copier /coller une colonne dans un fichier excel
    Par fboss dans le forum VB.NET
    Réponses: 0
    Dernier message: 13/11/2009, 12h33
  5. Mettre des donnees dans un fichier Excel
    Par Mouawad dans le forum C++Builder
    Réponses: 6
    Dernier message: 07/10/2004, 14h55

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