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
dans le fichier C:\Users\yannc\AppData\Local\Temp\gen_py\3.7\00020905-0000-0000-C000-000000000046x0x8x7\_Document.py
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)
Voici mon code :
désolé pour mon manque de clarté j'espère que c'est mieux la
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()
Merci d'avance j'espère avoir été clair dans mes explication à vous de jouer les khey !
Partager