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 :

Décodage résultats Python pour graphique Excel


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    ingénieur
    Inscrit en
    Mai 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : Mai 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Décodage résultats Python pour graphique Excel
    Bonjour,
    j'utilise Python 2.7 pour calculer des variables numériques que je voudrais recopier dans Excel Windows Vista pour créer des graphiques. Comment faire pour décoder ces résultats numériques Python. Je suis obligé de les retaper dans un tableau Excel ce qui est très vite limitant et fastidieux. Merci d'avance pour la réponse qui doit être assez triviale mais je suis débutant avec Python.
    Je sais qu'il existe des moyens graphiques adaptés à Python mais pour des raisons de continuité j'ai besoin d'utiliser encore les graphiques Excel.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 277
    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 277
    Points : 36 762
    Points
    36 762
    Par défaut
    Salut,
    Excel sait lire des fichiers .CSV.
    Pourquoi ne pas regarder comment mettre sous cette forme les résultats en utilisant le module csv?
    Vous avez aussi des exemples ici.
    Sinon microsoft a développé un package nommé pyvot. Il utilise l'API COM et il parle à EXCEL directement.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Le module csv fourni avec Python fonctionne très bien, et je l'utilise couramment pour transmettre des données issues d'une base de données à Excel (et vice-versa!).

    Il faut cependant résoudre 2 petits problèmes:

    1- en cas de mots comportant des caractères accentués, il faudra que le fichier csv soit encodé comme Windows ('cp1252). Mais peut-être les Excel plus récents supportent-ils d'autres encodages?

    2- en cas de lecture par Excel configuré en français, il faudra veiller à ce que les nombres flottants possèdent une virgule au lieu d'un point décimal, sinon, ils seront reconnus par Excel comme des chaines de caractères.

    A contrario, Excel reconnait un nombre entier ou flottant en tant que nombre, même s'il est présenté entre guillemets! On trouve ainsi des codes postaux reconnus comme des nombres entiers. En fait, sur ce coup-là, Excel applique le principe du canard (https://fr.wikipedia.org/wiki/Duck_typing)

    Au cas où tu utiliserais cette solution, je pourrais t'aider à établir le code pour ton problème.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 277
    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 277
    Points : 36 762
    Points
    36 762
    Par défaut
    Salut,

    Citation Envoyé par tyrtamos Voir le message
    Le module csv fourni avec Python fonctionne très bien, et je l'utilise couramment pour transmettre des données issues d'une base de données à Excel (et vice-versa!).

    Il faut cependant résoudre 2 petits problèmes:
    Passer par un fichier .csv implique la conversion de type Python en chaines de caractères qui seront comestibles par EXCEL. Et comme les deux mondes ont des "défauts" différents, il faudra produire du code pour effectuer "proprement" ces conversions (qui ne fonctionneront qu'en fonction de la configuration d'Excel et/ou de la patience à déclarer les conversions à faire via import data).

    Pyvot travaille avec win32com: un int, un float seront transmis en binaire et affichés en fonction du "locale" d'Excel (ou de Python lorsqu'on fait "print").

    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> array = (1, 2, "abc", 1.2, 1.3)
    >>> xl.view(array)
    <ColumnVector range object for $D$2:$D$1048576 (visible only)>
    Affichera dans Excel, 1 et 2 comme "entiers" et les floats 1.2 et 1.3 représentés par 1,2 et 1,3: j'ai configuré mon XL pour que les "floats" soient affichés avec des ',' à la place de '.' mais les floats Python restent des floats dans XL indépendamment de "l'affichage".

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

  5. #5
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    J'ai, bien entendu, le code pour résoudre les 2 problèmes que je cite, dans les 2 sens lecture/écriture. C'est tout de même dommage que la doc ne précise pas mieux les solutions à ces 2 problèmes que la plupart des non-anglo-saxons auront forcément...

    A mon avis, les avantages du module csv sont:
    - le module est livré avec Python
    - le code est muilti-plateformes (Windows, Linux, Mac OS X)
    - le code est multi-tableurs (=>Excel, Libreoffice, ...)

    Les inconvénients de ce module sont:
    - qu'on ne fournit à Excel que des données en texte, à charge pour le tableur de reconnaître ce qu'il peut (texte, nombres, dates)
    - qu'on ne peut pas transmettre de mise en forme (largeur des colonnes, bordures, cadrage d'affichage, etc...).

    Et, bien sûr, si on restreint l'application à Windows et à Excel, on doit pouvoir faire mieux avec les modules spécialisés. En plus de pyvot (que je ne connais pas), il y a aussi xlwt: http://www.python-excel.org/, mais limité à Python 2.7 et Excel 2003.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 277
    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 277
    Points : 36 762
    Points
    36 762
    Par défaut
    Le module CSV s'améliore dans les versions 3.
    Ceci dit, utiliser ce format pour échanger des données entre programmes est une habitude qu'on pris les informaticiens au siècle dernier. A cette époque, les environnements étaient beaucoup moins "ouverts" et les manques d'informations sur le type de données représentées étaient acceptables.

    Depuis le monde s'est rétréci et une date, un float, une chaîne de caractères doivent être accompagnées d'informations permettant de les décoder en préservant l'intégrité de l'information qu'ils représentent.

    XML a été inventé pour résoudre ces problèmes.

    C'est contraignant et beaucoup plus bavard que le format CSV. Pour savoir que le champ X est un int ou un float, il faut se farcir un XSD ou un DTD. Prendre le temps d'apprendre à utiliser une bibliothèque XML et ne pas faire d'impasse côté représentations: rien n'empêche d'écrire un float avec des ',' même si XML ne tolère que des '.'.
    Note: les dernières versions d'XL savent lire du .XML.

    Après on peut toujours faire du quick&dirty avec du CSV et même faire que le CSV soit un peu moins "dirty". Ceci dit, la documentation du module contient bien les "caution: use with care" nécessaires:

    The so-called CSV (Comma Separated Values) format is the most common import and export format for spreadsheets and databases. CSV format was used for many years prior to attempts to describe the format in a standardized way in RFC 4180. The lack of a well-defined standard means that subtle differences often exist in the data produced and consumed by different applications. These differences can make it annoying to process CSV files from multiple sources. Still, while the delimiters and quoting characters vary, the overall format is similar enough that it is possible to write a single module which can efficiently manipulate such data, hiding the details of reading and writing the data from the programmer.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [XL-2007] Format conditionnel pour graphique Excel
    Par mich2p1 dans le forum Excel
    Réponses: 2
    Dernier message: 30/04/2013, 20h26
  2. probleme laison word excel pour graphique
    Par minam dans le forum Word
    Réponses: 1
    Dernier message: 26/03/2009, 19h21
  3. BDD Excel python et graphique , bref tout un programme :)
    Par Iria77 dans le forum Calcul scientifique
    Réponses: 3
    Dernier message: 24/08/2007, 15h24
  4. (vba excel) echelle horaire pour graphique
    Par DirtyA:ex dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 27/06/2006, 14h00
  5. [C#] Assembly pour ajouter un graphique excel dans ma form
    Par bossun dans le forum Windows Forms
    Réponses: 4
    Dernier message: 12/06/2006, 17h04

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