簡體   English   中英

打開兩個Excel文件

[英]Open two excel files

我試圖通過win32com打開兩個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)`

我以為可能無法打開兩個Dispatch,但是當我創建第二個Dispatch時,如下所示:

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()

它沒有幫助。 當我只打開一個文件時,我工作正常。 似乎無法處理第二個問題。

好的,當我更改代碼行的順序時,它現在可以工作,如下所示:

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"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM