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 :

[openpyxl] fonction pour récupérer toutes les valeurs d'une ligne


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [openpyxl] fonction pour récupérer toutes les valeurs d'une ligne
    Bonjour à tous,

    Je suis un grand débutant en python. Je m'en sert actuellement pour des données sur fichier excel avec la librarie openpyxl.

    Je ne suis pas encore très à l'aise avec le passage d'argument type object à des fonctions créés. Je veux faire une fonction qui récupère les valeurs des cellules appartenant à une ligne et les ajouter dans une liste.

    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
    from openpyxl import *
    def get_cells_line(line, column_count, ws):
     
    	tableau = []
    	for i in ws.iter_rows('A'+str(line)+':'+'AM'+str(column_count)):
    		tableau.append(i.value)
    	return tableau
     
    fichier_source = 'IRIS_FORMATION.xlsx'
    wb = load_workbook(fichier_source, data_only = True)
    ws = wb.active
    print("Chargement de " + fichier_source)
     
    table = get_cells_line(2,ws.max_column, ws)
     
    print(table)

    Voici le message d'erreur retourné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Traceback (most recent call last):
      File "test.py", line 16, in <module>
        table = get_cells_line(2,ws.max_column, ws)
      File "test.py", line 8, in get_cells_line
        tableau.append(i.value)
    AttributeError: 'tuple' object has no attribute 'value'
     
    ***Repl Closed***
    Merci d'avance à ceux qui prendront le temps de me lire,

    Cordialement,

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    A chaque itération, ws.iter_rows retourne une "ligne" de la région passée en paramètre.
    Cette ligne pouvant contenir 0 ou plusieurs cellules est représentée par une liste de 0 ou plusieurs objets représentant chaque cellule de la ligne.
    ws.iter_rows a choisi d'utiliser une liste de type tuple qui est un objet de base Python semblable à "list" (mais "immutable").
    En écrivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
             for i in ws.iter_rows('A'+str(line)+':'+'AM'+str(column_count)):
    		tableau.append(i.value)
    difficile d'obtenir autre chose que:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AttributeError: 'tuple' object has no attribute 'value'
    Il faut "parcourir" ce tuple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
             for row in ws.iter_rows('A'+str(line)+':'+'AM'+str(column_count)):
    		tableau.append([ x.value for x in row ])
    Citation Envoyé par Melfos31 Voir le message
    Je suis un grand débutant en python. Je m'en sert actuellement pour des données sur fichier excel avec la librarie openpyxl.
    Les boucles "for", les types de bases comme "tuple", "list", "dict" et les messages d'erreurs que Python retourne lorsqu'on gribouille ses premiers codes sont ce qu'on apprend avec un tuto.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    merci beaucoup, je comprends mieux le fonctionnement !

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/09/2014, 07h41
  2. PROC TABULATE : Mettre en couleur toutes les valeurs d'une ligne total
    Par CHmartine dans le forum ODS et reporting
    Réponses: 1
    Dernier message: 04/10/2011, 16h58
  3. [XL-2003] Récupérer toutes les valeurs d'une colonne
    Par Tintou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/07/2010, 16h38
  4. Récupérer toutes les valeurs d'une liste déroulante
    Par christgh dans le forum Langage
    Réponses: 4
    Dernier message: 10/12/2008, 21h17
  5. [MySQL] Requête pour récupérer toutes les valeurs d'un tableau
    Par djoumusic dans le forum PHP & Base de données
    Réponses: 40
    Dernier message: 24/08/2008, 22h11

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