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

Bibliothèques tierces Python Discussion :

"Protéger ma feuille" EXCEL grâce à Python ?


Sujet :

Bibliothèques tierces Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2024
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2024
    Messages : 5
    Points : 6
    Points
    6
    Par défaut "Protéger ma feuille" EXCEL grâce à Python ?
    Bonjour,

    À des fins d'automatisation, j'avais 20 fichiers EXCEL pour lesquels je rentre des données et ensuite je dois faire clique droit sur ma feuille et cliquer sur "Protéger la feuille", ensuite je rentre deux fois le mot de passe et ma feuille est protégée et je peux l'envoyer.
    J'ai fait tout le code en python pour les saisies automatiques mais je n'arrive pas à "Protéger la feuille et les cellules verrouillées" en python, j'ai essayé plusieurs API.

    Avez-vous une solution SVP ?

    Belle soirée

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par tino_jbrt Voir le message
    Avez-vous une solution SVP ?
    Si je cherche sur Internet, je trouve 3 solutions en 2s fonction de la bibliothèque utilisée (vous en utilisez bien une pour créer vos fichiers... mais vous n'en parlez pas).

    Peut être que vous en avez déjà essayé... peut être que vous n'avez pas compris comment les appliquer à votre cas et ça ne marche pas... en tout cas, si vous ne prenez pas le temps de donner plus de détails...

    - 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
    Étudiant
    Inscrit en
    Janvier 2024
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2024
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Désolé, je vais détailler, à savoir que je suis sur mac donc la solution avec pywin ne fonctionne pas (ou alors il faut m'expliquer comment car j'ai pas réussi à trouver un intermédiaire pour utiliser pywin sur mac), ensuite j'ai essayé ce sdeux fonctions :

    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
     
    def proteger_feuille_avec_mot_de_passe(chemin_classeur, nom_feuille, mot_de_passe):
        # Charger le classeur existant
        classeur = openpyxl.load_workbook(chemin_classeur)
     
        # Sélectionner la feuille à protéger
        feuille = classeur[nom_feuille]
     
        # Protéger la feuille avec un mot de passe
        feuille.protection.password = mot_de_passe
        feuille.protection.sheet = True
     
        # Sauvegarder le classeur modifié
        classeur.save(chemin_classeur)
     
    def proteger_classeur_et_feuille(chemin_classeur, mot_de_passe_classeur, mot_de_passe_feuille):
        # Charger le classeur existant
        classeur = openpyxl.load_workbook(chemin_classeur)
     
        # Protéger le classeur avec un mot de passe
        classeur.security.workbookPassword = mot_de_passe_classeur
        classeur.security.lockStructure = True
     
        # Protéger toutes les feuilles avec un mot de passe
        for feuille in classeur.sheetnames:
            ws = classeur[feuille]
            ws.protection.sheet = True
            ws.protection.password = mot_de_passe_feuille
     
        # Sauvegarder le classeur modifié
        classeur.save(chemin_classeur)
    Puis, je ne peux pas créer un nouveau fichier avec openpyxl pour le protéger avec cette api car je réutilise des fichiers déjà existants...
    VOilà, n'hésitez pas..

  4. #4
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 824
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 824
    Points : 7 120
    Points
    7 120
    Par défaut
    Bonjour,

    Si vous utilisez des fichiers Excel de type .xlsx et le module openpyxl, vous pouvez lire sa doc Protection

    EDIT: Il y a aussi xlwings à tester
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par tino_jbrt Voir le message
    Puis, je ne peux pas créer un nouveau fichier avec openpyxl pour le protéger avec cette api car je réutilise des fichiers déjà existants...
    Ce que je constate c'est que vous avez essayé de suivre la documentation... et ayant pris le même chemin, je n'obtient pas mieux.

    J'ai simplifié pour juste essayer de faire marcher le mot de passe demandé à l'ouverture du fichier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    from openpyxl import Workbook
    from openpyxl.workbook.protection import WorkbookProtection
     
     
    wb = Workbook()
    wb.security = WorkbookProtection(workbookPassword = 'a123', lockStructure = True)
    wb.save('test.xlsx')
    sans succès. Après il faut chercher sur Internet des idées auprès de ceux qui ont eu le même genre de problème pour voir si une solution s'applique (je n'ai pas le temps pour çà).

    Vous pouvez essayer xlwings mais c'est un client OLE/COM qui discute avec l'Excel de microsoft qu'il faut installer (localement ou remote via le zinzin365) - que je n'ai pas non plus testé à cause de çà -.

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

Discussions similaires

  1. Manipuler un fichier excel avec python
    Par dipajero dans le forum Général Python
    Réponses: 4
    Dernier message: 09/02/2006, 23h14
  2. Suppression d'une feuille sous excel
    Par dimdidi dans le forum Langage
    Réponses: 2
    Dernier message: 06/02/2006, 09h29
  3. travail avec 2 feuilles sur Excel
    Par trefles dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/01/2006, 17h05
  4. Changement de feuille dans excel
    Par 24 faubourg dans le forum Access
    Réponses: 3
    Dernier message: 06/12/2005, 09h52
  5. [VBA-E] Sélection feuilles sous excel
    Par Mystic eyes dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/02/2004, 13h27

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