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 :

ouvrir un fichier excel


Sujet :

Bibliothèques tierces Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 14
    Par défaut ouvrir un fichier excel
    Bonjour

    J'ai écrit un programme en VBA Excel et je vourdrais le réécrire en Python.
    J'arrive à ouvrir un fichier.xls, à le lire, à écrire dans les cellules.
    Les premiers tests sont bons, mais quand je veux ouvrir un fichier.xls protégé en lecture je "coince".
    En VBA j'ouvre ce fichier avec la commande suivante:

    Workbooks.Open Filename:="C:\Messcripts\monfichier.xls", password:="blabla"

    par contre en Python je bloque avec le mot de passe.

    Je vous remercie par avance de votre aide

  2. #2
    Membre Expert
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Par défaut
    A priori si on passe par les paramètres nommés, ça bug, mais si on passe tout les paramètres attendu, ça passe.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlApp.Workbooks.Open ("e:\\temp\\test.xlsx", 0, False, 5, u'test')
    Voir ici pour la doc de Open et des paramètres : http://msdn.microsoft.com/en-us/library/bb179167.aspx

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 14
    Par défaut
    Bonsoir

    Merci encore pour ta promptitude à répondre DelphiManiac, et avec des bonnes solutions.
    Effectivement il faut employé les paramètre attendus, sauf que je n'ai pas compris l'histoire du u, peut être une erreur de frappe, sans lui ça fonctionne.

    Par contre j'ai un autre soucis, le script se déroule correctement sauf si je veux rendre visible excel avec ;

    monXl.visible=1 #(monXl étant l'ouverture de l'application)

    A partir de ce moment Excel s'ouvre mais sans la feuille de calcul, et tout ce bloque, je suis obliqé de refermer excel pour que le programme puisse se terminer.

    Voila, si tu as encore une bonne solution ........Même si tu ne trouve pas
    merci encore

  4. #4
    Membre Expert
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Par défaut
    Avec cet exemple, chez moi ça fonctionne.

    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
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
     
    from win32com.client import Dispatch
     
     
    xlApp = Dispatch("Excel.Application")
    xlApp.Visible = 1
    xlApp.Workbooks.Open ("e:\\temp\\test.xlsx", 0, False, 5, 'test')
    xlApp.DisplayAlerts=False
    xlApp.ActiveSheet.Cells(1,1).Value = u'Test d\'une chaîne de caractères avec des accents'
    x = raw_input()
    xlApp.ActiveWorkbook.Close(SaveChanges=0)
    xlApp.Quit()
    xlApp.Visible = 0
    del xlApp
    Pour le u', cela signifie que la chaîne passé en paramètres est en unicode.

    Essayes cette ligne avec et sans le u' et tu verras la différence dans Excel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlApp.ActiveSheet.Cells(1,1).Value = u'Test d\'une chaîne de caracatères avec des accents'

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 14
    Par défaut Resolu
    Bonsoir

    Ca fonctionne sauf quand je provoque une erreur, pour essayer une autre syntaxe, ça bloque , mais je pense que ça doit être normal.
    J'avais a peu près le meme code ormis le DisplayAlerts, et le xlApp.visible=0.
    Quelle est l'interet de mettre xlApp.visible=0 après xlApp.Quit() puisque l'on quitte l'application?

    Pour u' j'ai bien vu la différence concernant l'accent

    Encore merci pour ta réponse toujours aussi rapide.

    A bientôt pour de nouvelles questions

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

Discussions similaires

  1. [VB]ouvrir un fichier excel
    Par elasfer dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/10/2005, 09h31
  2. ouvrir un fichier excel coté client
    Par youss dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 27/07/2005, 14h42
  3. comment ouvrir un fichier excel ?
    Par vdavid1982 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 13/07/2005, 12h05
  4. ouvrir un fichier Excel avec une requete perso
    Par legillou dans le forum Access
    Réponses: 9
    Dernier message: 21/06/2005, 15h14
  5. Ouvrir un fichier excel depuis access
    Par ptitegrenouille dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 03/05/2005, 11h47

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