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 :

python et openpyxl


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2019
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Décembre 2019
    Messages : 62
    Par défaut python et openpyxl
    Bonjour à tous,

    j'ai un fichier excel a et je veux rajouter dans ce fichier les lignes du fichier b qu'i n'y sont pas.

    avec des prints je trouve bien les lignes mais je n'arrive pas à les enregistrer sur le fichier ?

    En vous remerciant, je débute.
    ci-dessous le code
    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
     
    from openpyxl import load_workbook
     
    fichiertravail="F:/Python/a.xlsx"
    fichiertelecharge="F:/Python/b.xlsx"
     
    ft=load_workbook(fichiertravail)
    ftelecharge=load_workbook(fichiertelecharge)
     
    sheetft=ft.active
    sheettelecharge=ftelecharge.active
     
    a=[]
    for row2 in sheetft.values:
        a.append(row2)
     
    for row in sheettelecharge.values:
                if row not in a:
                    fichiertravail.append(row)

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

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

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par salpat Voir le message
    avec des prints je trouve bien les lignes mais je n'arrive pas à les enregistrer sur le fichier ?

    En vous remerciant, je débute.
    ci-dessous le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    fichiertravail="F:/Python/a.xlsx"
    ...
    for row in sheettelecharge.values:
                if row not in a:
                    fichiertravail.append(row)
    Ca fonctionne ça ? Je veux dire que "fichiertravail" c'est une string et qu'une string n'a pas de méthode "append()". M'est avis que tu dois avoir un bel "AttributeError".
    Donc généralement on aime avoir sur ce forum un code fonctionnel. Ou alors on admet que le code ne soit pas fonctionnel mais dans ce cas on espère une question ayant trait au message d'erreur produit par le code (comme par exemple "je ne comprends pas pourquoi j'ai un message d'erreur") qu'un simple "je n'y arrive pas" ou "ça marche pas".
    Parce que "je n'arrive pas" peut avoir plein de causes qui sont (liste non exhaustive)
    1. je n'utilise pas la bonne syntaxe
    2. j'utilise la bonne syntaxe mais pas la bonne fonction
    3. j'utilise la bonne syntaxe et la bonne fonction mais pas sur le bon objet
    4. j'utilise la bonne syntaxe et la bonne fonction sur le bon objet mais pas au bon endroit de mon code

    Plus toute la gamme de ces cas combinés dans tous les sens comme "je n'utilise pas la bonne syntaxe et en plus je ne travaille pas sur le bon objet"...

    Je ne connais pas "openpyxl" mais par déduction je pense que l'instruction ftelecharge=load_workbook(fichiertelecharge) doit faire une association entre le fichier excel du disque et sa représentation "Python". De là, c'est sur "ftelecharge" qu'il faut oeuvrer pour rajouter des trucs et non sur la string "F:/Python/a.xlsx". Donc ton souci correspondrait à priori au cas n° 3...
    Et là faut voir la doc de "openpyxl" pour voir ce qu'on peut faire comme opérations sur un objet provenant de load_workbook()...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre confirmé
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2019
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Décembre 2019
    Messages : 62
    Par défaut excel python
    merci pour la réponse je vais regarder mais je n'ai pas d'erreur.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par salpat Voir le message
    merci pour la réponse je vais regarder mais je n'ai pas d'erreur.
    Ben si vous n'avez pas d'erreur, c'est que l'instruction n'est pas exécutée.
    Donc si on est à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for row in sheettelecharge.values:
                if row not in a:
                    fichiertravail.append(row)
    c'est que sheettelecharge.values est vide ou que toutes les row sont dans a.

    Et vous avez la commande magique "print" pour le vérifier en affichant des messages.

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

Discussions similaires

  1. [langage] traduction d'un fonction python en perl
    Par ay_pepito dans le forum Langage
    Réponses: 3
    Dernier message: 04/12/2007, 15h06
  2. CORBA & PYTHON
    Par stan91stan dans le forum CORBA
    Réponses: 5
    Dernier message: 10/06/2004, 12h32
  3. module .so pour python... ?!
    Par totoetlititi dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 09/03/2004, 14h51
  4. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 14h59

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