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 :

Graphes générés avec Openpyxl illisibles


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien R&D
    Inscrit en
    Juin 2020
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2020
    Messages : 33
    Par défaut Graphes générés avec Openpyxl illisibles
    Bonjour à tous,
    Je rencontre actuellement un soucis en créant des graphes de données d'essais avec Openpyxl.
    Une boucle sur différents essais les ajoutant dans un fichier Excel appelle une fonction pour créer les représentations graphiques des résultats.
    Voici mon 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    import openpyxl as oxl
     
    def Graphes(Essai, DonneesEssai):
        CheminFichier = Chemin vers mon fichier
        FichierExcel = oxl.load_workbook(CheminFichier)
        OngletEssai = FichierExcel[Essai]
        #Vérifie l'existence des feuilles des graphes sinon les crée
        if "Graph_Param1" not in FichierExcel.sheetnames:
            FichierExcel.create_chartsheet("Graph_Param1")
        if "Graph_Param2" not in FichierExcel.sheetnames:
            FichierExcel.create_chartsheet("Graph_Param2")
        #Assigne le nom des onglets
        OngletGrapheParam1 = FichierExcel["Graph_Param1"]
        OngletGrapheParam2 = FichierExcel["Graph_Param2"]
        #Retrouver les colonnes utiles
        for col in range(1,len(DonneesEssai.columns)+1):
            if OngletEssai.cell(14,col).value == "Time (s)":
                ColonneTemps = col
            elif OngletEssai.cell(14,col).value == "Param2":
                ColonneParam2 = col
            elif OngletEssai.cell(14,col).value == "Param1":
                ColonneParam1 = col
        #Renseigne le graphe Param1
        GrapheParam1 = oxl.chart.ScatterChart(scatterStyle="smooth")
        GrapheParam1.title = "Param1 during test"
        GrapheParam1.x_axis.title = "Test time (sec)"
        GrapheParam1y_axis.title = "Param1"
        xvalues = oxl.chart.Reference(OngletEssai, min_col = ColonneTemps, min_row=15, max_row=len(DonneesEssai))
        Param1values = oxl.chart.Reference(OngletEssai, min_col = ColonneParam1, min_row=15, max_row=len(DonneesEssai))
        series = oxl.chart.Series(Param1values, xvalues, title=Essai)
        GrapheParam1.series.append(series)
        OngletGrapheParam1.add_chart(GrapheParam1)
        #Renseigne le graphe Usure
        GrapheParam2 = oxl.chart.ScatterChart(scatterStyle="smooth")
        GrapheParam2 .title = "Param2 evolution"
        GrapheParam2 x_axis.title = "Test time (sec)"
        GrapheParam2 .y_axis.title = "Param2 "
        Param2values = oxl.chart.Reference(OngletEssai, min_col = ColonneParam2, min_row=15, max_row=len(DonneesEssai))
        series = oxl.chart.Series(Param2values, xvalues, title=Essai)
        GrapheParam2.series.append(series)
        OngletGrapheParam2.add_chart(GrapheParam2)
        FichierExcel.save(CheminFichier)
    Le code se déroule sans erreur mais lorsque j'ouvre le fichier Excel j'ai le message d'erreur
    Nom : erreur_excel.PNG
Affichages : 92
Taille : 10,7 Ko
    Puis lorsque je clique sur "Oui"
    Nom : erreur_excel2.PNG
Affichages : 92
Taille : 21,1 Ko
    Les graphes sont donc supprimés... Savez-vous m'indiquer à quoi cela est dû ? Comment puis-je corriger le problème ?
    Merci par avance pour vos réponses,
    Bonne journée,

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

    Citation Envoyé par DaddyTousucre Voir le message
    Comment puis-je corriger le problème ?
    Dans ce cas, on commence par ouvrir la documentation. On y trouve des exemples qu'on devrait arriver à faire fonctionner sans trop de soucis. Puis, on adapte l'exemple pour qu'il ressemble un peu plus au cas d'utilisation qu'on veut. Enfin on intègre cela dans son code.

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

  3. #3
    Membre averti
    Homme Profil pro
    Technicien R&D
    Inscrit en
    Juin 2020
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2020
    Messages : 33
    Par défaut
    Salut wiztricks,
    J'ai consulté la documentation avant de poster ici et je n'ai pas trouvé de réponse (ou je suis passé à côté mais j'ai pas mal fouillé...).
    Comme dit plus haut, le code "tourne" sans erreur, j'ai tenté de faire un print(FichierExcel.sheetnames) en fin de fonction, le print semble indiqué que les chartsheets sont bien présentes à chaque appel à la fonction.
    Je n'ai d'erreur qu'à l'ouverture du .xlsx avec Excel et le caractère peu explicite des messages d'erreur de celui-ci ne m'aident guère à en trouver la cause...
    Avez-vous des pistes ?
    Merci,

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Citation Envoyé par DaddyTousucre Voir le message
    Avez-vous des pistes ?
    Est-ce que vous arrivez à reproduire le problème constaté avec les exemples proposés?
    note: il y a peut être un bug dans la version d'openxlsx utilisée ou induit dans votre environnement, donc savoir si ce que vous voulez faire (ajout d'un graphique) fonctionne en dehors de votre code est un préalable.

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

  5. #5
    Membre averti
    Homme Profil pro
    Technicien R&D
    Inscrit en
    Juin 2020
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2020
    Messages : 33
    Par défaut
    Lorsque je fais tourner le programme avec 1 seul essai (et qu'il n'y a donc qu'une seule itération de la fonction), les graphes sont biens générés et lisibles lorsque j'ouvre le fichier avec Excel.
    Le problème semble donc survenir lorsque j'ajoute des données lors des itérations suivantes (le but étant d'avoir superposées les courbes de différents essais pour en faciliter la comparaison)

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Citation Envoyé par DaddyTousucre Voir le message
    Le problème semble donc survenir lorsque j'ajoute des données lors des itérations suivantes (le but étant d'avoir superposées les courbes de différents essais pour en faciliter la comparaison)
    Ce comportement est documenté:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    openpyxl does currently not read all possible items in an Excel file so images 
    and charts will be lost from existing files if they are opened and saved with the same name.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre averti
    Homme Profil pro
    Technicien R&D
    Inscrit en
    Juin 2020
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2020
    Messages : 33
    Par défaut
    Merci, j'étais passé au travers de cette info.
    J'ai donc essayé en renommant la chartsheet entre chaque itération avant d'enregistrer pour tenter de contourner le problème, mais ça ne semble pas suffisant...
    Des idées de comment cela pourrait être contourné ?

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/12/2006, 10h06
  2. [VB]Comment imprimer 1 graph généré dans un chartspace (OWC)
    Par alexxx69 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 29/01/2006, 21h56
  3. [DOM] Probleme de selection sur un radio généré avec le dom
    Par Oreily dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/01/2006, 10h04
  4. Graph 3D avec Visad (java)
    Par alamihamza dans le forum 3D
    Réponses: 1
    Dernier message: 16/02/2005, 11h19
  5. Comment extraire un fichier depuis un CD avec secteurs illisibles ?
    Par Millenod dans le forum API, COM et SDKs
    Réponses: 13
    Dernier message: 22/01/2005, 12h09

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