J'essaie d'ouvrir deux fichiers Excel via win32com et en essayant de déplacer une feuille d'un classeur à un autre, comme celui-ci:Ouvrez deux fichiers Excel
ScriptDirectory = os.path.dirname(__file__) # this script dir # path
xl = Dispatch('Excel.Application')
wb_Header = xl.Workbooks.Open(ScriptDirectory+'\Report_Header.xlsx')
ws_Header = wb_Header.Sheets("Header")
wb_Report = xl.Workbooks.Open(ScriptDirectory+'\Report1.xlsx')
ws_Header.Move(before=wb_Report.Sheets("Test Cases"))
wb_Header.Close()
wb_Report.Close()
xl.Quit()
Mais il se termine par une erreur:
Traceback (most recent call last):
File "C:\Workspace\ADTF_BV\Create_reports_v2.py", line 406, in <module>
wb_Report = xl.Workbooks.Open(ScriptDirectory+'\Report1.xlsx')
File "C:\Python27\lib\site-packages\win32com\gen_py\00020813-0000-0000-C000-000000000046x0x1x7\Workbooks.py", line 78, in Open
, Converter, AddToMru, Local, CorruptLoad)
pywintypes.com_error: (-2147417851, 'the server threw an exception', None, None)`
Je pensais que peut-être je ne peux pas ouvrir deux Dispatch, mais quand je crée secondes Dispatch comme ceci:
ScriptDirectory = os.path.dirname(__file__) # this script dir # path
xl = Dispatch('Excel.Application')
wb_Header = xl.Workbooks.Open(ScriptDirectory+'\Report_Header.xlsx')
ws_Header = wb_Header.Sheets("Header")
xl2 = Dispatch('Excel.Application')
wb_Report = xl2.Workbooks.Open(ScriptDirectory+'\Report1.xlsx')
ws_Header.Move(before=wb_Report.Sheets("Test Cases"))
wb_Header.Close()
wb_Report.Close()
xl.Quit()
il ne vous aide pas. Je fonctionne bien quand j'ouvre un seul fichier. On dirait qu'il ne peut pas gérer l'ouverture du second.
Quelqu'un sait pourquoi il peut fonctionne bien et le code de ma question est mal? – GohanP