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] Disparition des mes formes sur fichier xlsx lors de la sauvegarde


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2020
    Messages : 4
    Par défaut [OPENPYXL] Disparition des mes formes sur fichier xlsx lors de la sauvegarde
    Bonjour,
    En premier lieu, excusez moi si ce post n'est pas au bon endroit ou si le titre n'est pas bien défini.
    J'ai fouiné sur le net, mais je ne trouve pas de solution.
    Avec un PC windows10, python3.8 et le module openpyxl 3.0.3, j'ouvre un fichier xlsx contenant diverses chose mais notamment du texte et des formes (de simples ronds)
    Mon but est de rajouter du texte dans une case (ou il n'y a rien) et de sauver le fichier.
    Quand je fais cela, je perds toutes les formes ! Pas les images (grace au module pillow), ni le gras, l'italique les fusions de cellules, tout ça c'est bon, mais mes formes on disparue.
    (même chose si je ne fais qu'ouvrir et sauvegarder le fichier)

    Je sais que sur les version 2.x.x d'openpyxl cela ne fonctionnait pas, mais maintenant ? Auriez-vous une piste ? Je bloque...

    Par avance, merci

    Mise à jour avec le bout de code et le fichier d'entre test.xlsx

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    import openpyxl
    import os
     
    for file in os.listdir('.'):
        tmp = file.split('.')
        filename = sheetname = tmp[0]
        if tmp[1] == "xlsx":
            print(file)
            wb = openpyxl.load_workbook(file)
            sheet = wb.get_sheet_by_name('1234')
            sheet['E2'] = 'salut'
            wb.save(file)
    Fichiers attachés Fichiers attachés

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2020
    Messages : 4
    Par défaut
    Je viens de rajouter le bout de code et le fichier d'entrée.
    Par avance, merci

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 699
    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 699
    Par défaut
    Salut,

    Citation Envoyé par jmarcsole Voir le message
    Je sais que sur les version 2.x.x d'openpyxl cela ne fonctionnait pas, mais maintenant ? Auriez-vous une piste ?
    Si çà fonctionnait avec la dernière version, il y en aurait une mention dans les release-notes et les warning que contient la documentation sur ces sujets auraient disparus.

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

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2020
    Messages : 4
    Par défaut
    Salut, merci d'avoir pris le temps de répondre.
    Dans la version précédente cela ne fonctionnait pas.
    Donc tu sous entends que comme rien n'a été dit, cela ne fonctionne toujours pas ?
    Je vais me pencher sur la doc en profondeur...

    Mais sinon, vois tu une autre solution pr faire ce que je voudrais faire ?

    ++

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 699
    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 699
    Par défaut
    Salut,

    Citation Envoyé par jmarcsole Voir le message
    Mais sinon, vois tu une autre solution pr faire ce que je voudrais faire ?
    Excel/OpenOffice/LibreOffice sont pilotables par Python et doivent savoir le faire.

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

  6. #6
    Membre actif
    Homme Profil pro
    apprenti
    Inscrit en
    Octobre 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : apprenti
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2018
    Messages : 18
    Par défaut
    Bonjour,

    Pas sur mais cela peut peut-être d'aider car je sais que openpyxl à du mal avec tout ce qui n'est pas cellule et formule ; load_workbook peut prendre comme attribut keep_vba, si tu le mets à True il a tandence à mieux se comporter avec des feuilles contenant des formes etc...

    Sinon une autre librairie qui fait l'affaire mais qui peut être un peu plus complexe et lourde c'est win32com (.client)

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2020
    Messages : 4
    Par défaut
    Bonjour,
    Désolé pour l'absence, je reviens vous dire que la lib Win32Com proposée par Antoine fait ce que je veux.
    Mes formes ne disparaissent plus.
    Merci pour l'aide

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/11/2018, 12h23
  2. Réponses: 6
    Dernier message: 15/06/2011, 11h52
  3. Réponses: 1
    Dernier message: 25/01/2011, 14h52
  4. Disparition de mes sous menu dans des applet flash
    Par michael10fr dans le forum Flash
    Réponses: 0
    Dernier message: 18/06/2008, 15h36
  5. Besoins d'aide sur un Form lors de la sauvegarde.
    Par dsolheid dans le forum Windows Forms
    Réponses: 13
    Dernier message: 22/01/2008, 01h33

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