打开两个Excel文件
问题描述:
我试图通过win32com打开两个Excel文件,并试图将一个表从一个工作簿移动到另一个,就像这样:打开两个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()
但由于出错而结束:
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)`
我想,也许我不能开两个调度,但是当我创建第二派遣这样的:
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()
它并不能帮助。 当我只打开一个文件时,我工作正常。它看起来不能打开第二个。
答
OK,现在的工作,当我改变的代码行的顺序,如:
xl = Dispatch('Excel.Application')
wb_Header = xl.Workbooks.Open(ScriptDirectory+'\Report_Header.xlsx')
wb_Report = xl.Workbooks.Open(ScriptDirectory+'\Report1.xlsx')
ws_Header = wb_Header.Sheets("Header")
ws_Header.Copy(Before=wb_Report.Sheets("Test Cases"))
任何人都知道为什么它可以工作的很好,并从我的问题的代码是错误的? – GohanP