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

Python Discussion :

Lecture en colonne d'un fichier excel


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mai 2013
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2013
    Messages : 75
    Par défaut Lecture en colonne d'un fichier excel
    Bonjour,

    Je suis relativement débutant en python !
    J'explique mon problème :

    J'ai un fichier excel dans lequel j'ai un tableau :
    colonne A (y) colonne C (x)
    200 240
    250 300
    300 360
    400 480
    500 600
    etc etc
    . .
    . .
    . .

    Je souhaite rentrer une valeur stockée dans une variable : y.
    Ensuite, rechercher cette valeur dans la colonne A (autrement dit une boucle pour tester si y == (valeur de la case dans la colonneA)), puis créer une nouvelle variable x dans laquelle il y aura la valeur de la case colonne c correspondant (en ligne).

    J'ai déja la structure globale, c'est à dire la variable y.
    Mon problème repose sur la boucle de lecture (test) si y == (case de la colonneA)

    Je fais un exemple :

    y = 400
    recherche dans la colonne A
    x=480

    Je vous remercie de votre aide chers développeurs !

  2. #2
    Membre émérite

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2010
    Messages : 662
    Par défaut
    Salut,

    En gros tu souhaite reproduire la fonction RECHERCHEV() d'excel, c'est ça?

    Ce fichier excel, comment le manipule tu? En l'ouvrant avec win32com? Ou exporte tu les données au format text, un csv?

    Est-ce que tu pourrais poster ce que tu as déjà fait, meme une fraction fonctionnele de ton code?

    Ju

  3. #3
    Membre confirmé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mai 2013
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2013
    Messages : 75
    Par défaut
    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
    from tkinter import *
    import math
    import xlrd
     
     
    classeur = xlrd.open_workbook("Tableau diametre.xlsx")
    nom_des_feuilles = classeur.sheet_names()
    feuille = classeur.sheet_by_name(nom_des_feuilles[0])
     
    def repondre():
     
        affichage['text'] = (e1.get(), X, '3/2')
        prof=float(e1.get()) #a1
        y=float(e2.get())   #a2
     
        f=prof*(3/2)
        c=(4/3)
     
        print (f)
     
        if y <= 600:
            if ba.get()==1 :
                test = True
                #while test :
    Je souhaite simplement retrouver la valeur de ma variable y dans le colonne A
    puis décaler de 2 rang à droite afin d'avoir le x.

  4. #4
    Membre émérite

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2010
    Messages : 662
    Par défaut
    OK, c'est bien la fonction RECHERCHEV() dont tu parles.

    Je ne connais pas le module xlrd, peut-être que quelqu'un d'autre ici t'en parleras.

    Il y a des choses dans ton code que je ne peux que deviner:
    • e1
    • e2
    • ba


    Est-ce que ce sont des cellules?

    Le principe est plutôt simple à mon avis. Il faut se placer à la première cellule de la colonne A. On descend tant que la valeur de la cellule est non vide (tant qu'on est pas arrive à la fin en somme) et tant que la valeur de la cellule est différente de y. Si la valeur recherchée est touvée on récupère la valeur de la cellule voisine en colonne B.

    Dis-moi si je me trompe de raisonnement.

    Est-ce que tu peux "lire" le contenu d'une cellule à partir de ces coordonnées (i,j) ou uniquement à partir de son nom?

    Qu'est-ce qui se passe si la valeur n'est pas trouvée? Est-ce que tu peux prendre la valeur la plus proche?


    Ju

  5. #5
    Membre confirmé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mai 2013
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2013
    Messages : 75
    Par défaut
    oui c'est exactement le raisonnement que j'ai mais que je n'arrive pas a appliquer.
    e1 et e2 sont des entrées

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    e1 = Entry(Fenetre)
    e2 = Entry(Fenetre)
     
     
    e1.grid(row=3, column=1)
    e2.grid(row=4, column=1)
    ba est juste une case à cocher.

    Si la valeur y n'est pas trouvée dans la colonne, j'aimerais afficher un message d'erreur.

    Pour le moment j'arrive simplement à lire par exemple la case A1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print ("A1: {}".format(feuille.cell_value(0, 0)))

  6. #6
    Membre émérite

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2010
    Messages : 662
    Par défaut
    Ah oui, venant de tkinter.

    Ok, je peux malheuresement pas faire grand chose pour toi, je n'ai pas xlrd sur mon PC de bureau.

    Cependant il y une doc associé au module.

    Essaye ceci en créant un nouveau fichier.py:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import xlrd
     
    classeur = xlrd.open_workbook("Tableau diametre.xlsx")
    nom_des_feuilles = classeur.sheet_names()
    feuille = classeur.sheet_by_name(nom_des_feuilles[0])
     
    cellule = feuille.cell(1,1)
    valeur = cellule.value
    print valeur, type(valeur)
    Assure toi qu'il y a quelque chose d'écrit dans la cellule A1 de la première feuille et dis-moi ce qu'il se passé.


    Ju


    PS: attention, xrld retourne un flottant meme si la valeur est un entier dans la cellule. Sur python 2.x 4/3=1 (entier)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer le chiffre de la colonne d'un fichier Excel
    Par mouaa dans le forum VBA Access
    Réponses: 7
    Dernier message: 21/02/2008, 16h25
  2. Réponses: 12
    Dernier message: 22/01/2008, 09h16
  3. parcours de lignes et colonnes d'un fichier excel
    Par guintolli dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/12/2007, 11h33
  4. Remplir les colonnes d'un fichier excel
    Par craryb dans le forum MFC
    Réponses: 3
    Dernier message: 14/03/2007, 12h37
  5. Macro VBA Excel : Comparaison des deux 1ères colonnes de 2 fichiers Excel
    Par techneric dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/01/2007, 10h00

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