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 :

bibliothèque xlwt et win32com.client


Sujet :

Bibliothèques tierces Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2023
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2023
    Messages : 3
    Points : 3
    Points
    3
    Par défaut bibliothèque xlwt et win32com.client
    Bonjour,
    Je vais essayer d'expliquer ce dont j'ai besoin :
    J'aimerais d'abord créer un fichier excel avec plusieurs feuille que je nome via l'utilisateur
    Ensuite a chaque feuille du fichier je veux créer un fichier word du même nom que la feuille. C'est la que ça bloque.
    J'ai crée un boucle for. A la première itération tout se passe bien le fichier est bien fait mais a la deuxième itération (peut importe la valeur de i!=1) il y a une erreur : (-2147023179, 'The interface is unknown.', None, None)
    l'erreur se trouve sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    return self._oleobj_.InvokeTypes(376, LCID, 1, (24, 0), ((16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17)),FileName, FileFormat, LockComments, Password, AddToRecentFiles, WritePassword, ReadOnlyRecommended, EmbedTrueTypeFonts, SaveNativePictureFormat, SaveFormsData, SaveAsAOCELetter, Encoding, InsertLineBreaks, AllowSubstitutions, LineEnding, AddBiDiMarks)
    dans le fichier C:\Users\yannc\AppData\Local\Temp\gen_py\3.7\00020905-0000-0000-C000-000000000046x0x8x7\_Document.py
    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
     
    i=int(input('nombre diteration',))
     
    fichier = xl.Workbook() #creation du fichier xls
     
    doc = win32.gencache.EnsureDispatch('Word.Application')
    doc.Visible = False
    word_doc = doc.Documents.Add()
     
    for e in range(i):
        name = input("nom de la feuille : ",) # Creation de la feuille dédiée
        sheet = fichier.add_sheet(name)
        sheet.write(0,0,'hello world') #test de remplissage
        sheet.write(0,1,'B1?')
        sheet.write(1,0,e)
        sheet.write(1,1,'B2!')
        fichier.save('chemin\\fichier.xls') # enregistre le fichier chemin a ctrl C ctrl V
        excel = win32.gencache.EnsureDispatch('Excel.Application')
        wb = excel.Workbooks.Open(r'fichier.xls')
        sheet = wb.Sheets(e+1)
        sheet.UsedRange.Copy()
        try:
            word_doc = doc.Documents.Add()
            word_doc.Content.PasteExcelTable(False, False, False)
            output_path = f'C:\\Users\\yannc\\Documents\\fichier{name}.docx'
            word_doc.SaveAs(output_path)
        except Exception as e:
            print('Erreur :', str(e))
        finally:
            wb.Close(False)
            word_doc.SaveAs(f'C:\\Users\\yannc\\Documents\\fichier{name}.docx')
            word_doc.Close()
            excel.Quit()
            doc.Quit()
     
    doc = win32.gencache.EnsureDispatch('Word.Application')
    doc.Visible = True
    word_doc = doc.Documents.Add()
    désolé pour mon manque de clarté j'espère que c'est mieux la
    Merci d'avance j'espère avoir été clair dans mes explication à vous de jouer les khey !

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 105
    Points : 4 455
    Points
    4 455
    Par défaut
    bonjour

    1)
    il faut rééditer ton premier message pour formater ton code (bouton #), sinon ici, c'est incompréhensible pour nous.
    EDIT: ok très bien
    2)
    Il faut nous donner l'erreur complète, nous avons les lignes indiquées. Avec toi, il faut deviner par nous même
    $moi= ( !== ) ? : ;

  3. #3
    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
    Salut,

    Citation Envoyé par azerty123C Voir le message
    A la première itération tout se passe bien le fichier est bien fait mais a la deuxième itération
    Logiquement, cela signifie qu'on effectue la deuxième itération avec les objets du programme dans un état différent de celui de la première (itération).

    C'est comme le jeu des 5 erreurs lorsqu'on compare 2 dessins sauf que là, c'est la photo ne bouge pas: c'est le même code qui sera exécuté, juste l'état des objets.

    Un candidat probable est le fichier word fermé dans le finally et jamais ré-ouvert.

    Mais de façon générale demander de l'aide c'est avoir cherché l'erreur avant en simplifiant le code et poster un code complet (permettre de reproduire pour récupérer les infos que vous ne donnez pas).

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

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2023
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2023
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour, je vous remercie pour votre réactivité.

    cependant je suis désolé mais je ne comprends pas j'ai simplifié un maximum mon code il ne marche toujours pas. Je ne vois vraiment pas ce que cela va changer avec le code complet mon erreur est dans ces lignes de code.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2023
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2023
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Logiquement, cela signifie qu'on effectue la deuxième itération avec les objets du programme dans un état différent de celui de la première (itération).

    C'est comme le jeu des 5 erreurs lorsqu'on compare 2 dessins sauf que là, c'est la photo ne bouge pas: c'est le même code qui sera exécuté, juste l'état des objets.

    Un candidat probable est le fichier word fermé dans le finally et jamais ré-ouvert.
    C'était exactement ça j'ai juste du enlever le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            excel.Quit()
            doc.Quit()
    du finally et le remettre dans le Except
    C'était finalement tout bête merci beaucoup

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

Discussions similaires

  1. [Python 3.X] Obtenir toutes les propriétés/attributs d'un objet win32com.client.CDispatch
    Par FrenchPie dans le forum Interfaçage autre langage
    Réponses: 3
    Dernier message: 07/08/2018, 20h37
  2. [Python 2.X] win32com.client et fonction
    Par Jeffazzo dans le forum Général Python
    Réponses: 2
    Dernier message: 28/03/2017, 22h02
  3. Le problème sur win32com.client
    Par h2qutc dans le forum Général Python
    Réponses: 0
    Dernier message: 05/11/2013, 09h13
  4. probleme: "import win32com.client"
    Par Terminator dans le forum Bibliothèques tierces
    Réponses: 2
    Dernier message: 21/02/2007, 19h00
  5. bibliothèque pour developpez un client
    Par zed-4 dans le forum Bibliothèques
    Réponses: 4
    Dernier message: 22/11/2006, 19h17

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