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__Excel Enregistrement de fichier Excel non dénaturé grâce a Python


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2021
    Messages : 4
    Par défaut Python__Excel Enregistrement de fichier Excel non dénaturé grâce a Python
    Bonjour à tous
    Je viens vers vous en espérant que quelqu’un ai une solution à mon problème.
    Je m’arrache les cheveux depuis maintenant beaucoup d’heures sur un souci qui a la base me semblait relativement simple. C’était sans compter mon petit niveau en programmation python.
    Je m’explique,
    J’avance pendant les vacances scolaires sur un petit outil de notation des élèves et j’arrive à la fin de mon développement. Il ne me reste plus qu’une action à réaliser pour que l’outil soit totalement
    exploitable.
    Je possède un fichier Excel que je dois remplir et aussi modifier son nom. Tout cela ne me pose pas trop de problème. Mon souci vient du fait que lors de l’enregistrement du fichier fraichement créé, je perds les menus déroulants et j’ai quelques cellules qui ne sont plus sélectionnable (celle qui n’ont pas à être récupéré par les macros internes au fichier).
    J’ai essayé avec la bibliothèque Openpyxl. J’ai cru comprendre après recherche sur le net qu’avec cette bibliothèque il n’y avait pas vraiment d’autre solution que de tous recréer. Cela me semble extrêmement fastidieux.
    Je me suis donc tourné vers la bibliothèque Pandas. Et là oh misère c’est encore pire ! D’une je retrouve les mêmes soucis mais en plus elle me supprime toute la mise en page.
    Un exemple valant mieux qu’un grand discours, je me permets de vous joindre un exemple des 2 essais synthétisé expliqué plus haut.
    Grand merci à celui ou celle qui pourra me sortir de mon écran !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    from openpyxl import load_workbook
    wb = load_workbook(filename='mon-fichier.xlsx')
    wb.save("e;e;e;e;mon-fichier-copie.xlsx"e;e;e;e;)
    et pour Pandas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import pandas as pd
    t = pd.read_excel('mon-fichier.xlsx', sheet_name=1)
    t.to_excel('mon-fichier-copie2.xlsx', header = False, index = False)

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

    Préserver le contenu du fichier existant est quelque chose que seul EXCEL sait faire!
    Et vous pouvez le programmer via son interface COM accessible avec la bibliothèque pywin32 et l'étude de quelques exemples à chercher sur Internet.

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

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2021
    Messages : 4
    Par défaut
    Salut wiztricks

    Merci énormément pour votre réponse ultra rapide.

    Ce n'est pas ce que je voulais entendre mais c'est comme ça. C'est fou! j'aurai pensé cela plus simple.

    Bien, du coup j'arrête de chercher et je me concentre sur refaire ce qui a disparu.

    J'ai réussi a remettre toute les cellule de nouveau saisissable.

    Il me reste plus qu'a trouver la façon de refaire les menu déroulants.
    Si vous avez une piste ou mieux un exemple, je suis preneur.

    A tout cas grand merci a vous pour votre réactivité.

    D.

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

    Citation Envoyé par Benes1 Voir le message
    Si vous avez une piste ou mieux un exemple, je suis preneur.
    Pas chaud pour tester l'aventure pywin32 pour jouer avec l'interface COM d'Excel?

    Si votre code fonctionne avec openpyxl, ça ne devrait pas être trop compliqué à traduire avec l'interface COM car au bout du bout, c'est toujours triturer des tableaux à 2 dimensions.
    Et comme vous savez ce que vous voulez faire, vous savez ce que vous cherchez côté exemples sur Internet.

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

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2021
    Messages : 4
    Par défaut
    Ok je comprends, je devrai réussir a m'en sortir.
    Merci et bonne continuation a vous.
    D.

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 827
    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 827
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Benes1 Voir le message
    J’ai essayé avec la bibliothèque Openpyxl. J’ai cru comprendre après recherche sur le net qu’avec cette bibliothèque il n’y avait pas vraiment d’autre solution que de tous recréer. Cela me semble extrêmement fastidieux.
    Il y a aussi les bibliothèques xlrd (r=read) et xlwt (w=write).
    Ici un exemple de démo. Peut-être qu'il fonctionnera sur ton fichier plus complexe...
    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]

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

    Citation Envoyé par Sve@r Voir le message
    Il y a aussi les bibliothèques xlrd (r=read) et xlwt (w=write).
    Si on lit la description donnée sur PyPI, pas la peine d'essayer.

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

  8. #8
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 199
    Par défaut
    hello,
    il y a aussi possibilité d'utiliser calc libreoffice au lieu d'excel car on peut écrire des macros en python à l'intérieur. A voir si tes fichiers excel s'ouvrent bien dans calc.
    Ami calmant, J.P

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2021
    Messages : 4
    Par défaut
    Merci pour vos réponse mais
    -a priori xlrd ne fonctionne pas avec les xlsX.
    -je n'ai pas le choix du fichier, c'est Excel qui m'est fourni.

  10. #10
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Citation Envoyé par Benes1 Voir le message
    Merci pour vos réponse mais
    -a priori xlrd ne fonctionne pas avec les xlsX.
    -je n'ai pas le choix du fichier, c'est Excel qui m'est fourni.
    Si xlrd savait préserver formatage et macros, on pourrait toujours convertir .xlsx en .xls (ce sont juste des formats différents disons "binaire" pour .xls et XML pour .xlsx)... mais ce n'est pas le cas.

    OpenOffice/LibreOffice Calc savent lire les fichiers .xlsx et à priori sont programmables depuis Python (tout comme l'est EXCEL via pywin32).

    C'est (peut être) une option à explorer si on ne veut/peut pas utiliser EXCEL.

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

  11. #11
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 199
    Par défaut
    hello,
    Citation Envoyé par Benes1 Voir le message
    -je n'ai pas le choix du fichier, c'est Excel qui m'est fourni.
    Pour l'utilisation de l'interface COM d'excel à partir de python il y a un module qui simplifie son utilisation: safexl (présent dans Pypi).
    A wrapper around the pywin32 module for easier use and automated cleanup of Excel Application COM objects
    Ami calmant, J.P

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

Discussions similaires

  1. [VBA-E] une macro qui enregistre mon fichier Excel
    Par Djohn dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 02/03/2007, 11h47
  2. [VBA]enregistrer en fichier excel en macro
    Par jazziestan dans le forum SDK
    Réponses: 12
    Dernier message: 29/12/2006, 10h07
  3. [Excel] Enregistrer un fichier Excel côté client
    Par scorpking dans le forum Bibliothèques et frameworks
    Réponses: 14
    Dernier message: 18/07/2006, 11h10
  4. copier une plage d'un fichier Excel non ouvert vers la feuille en cours
    Par mich2704 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/06/2006, 12h30
  5. Ouvrire ou Enregistrer un Fichier Excel
    Par jo281 dans le forum ASP
    Réponses: 1
    Dernier message: 13/12/2005, 18h55

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