2016-09-22 1 views
0

파일을 읽을 수 없다는 문제가 있습니다.pywinauto를 사용하여 Excel 파일을 닫을 수있는 방법

swapy + pywinauto를 사용하고있었습니다.
프로그램 내보내기는 다른 이름 (예 : .. ..)으로 파일을 엑셀 나는 수출 엑셀을 닫으려면 swapy를 사용했습니다.

from pywinauto.application import Application 
app = Application().Start(cmd_line=u'"C:\\Program Files\\Microsoft Office\\Office14\\EXCEL.EXE" \\dde') 
xlmain = app.XLMAIN 
xlmain.Wait('ready') 
xlmain.Close() 
app.Kill_() 

아래 오류가 있습니다.

Traceback (most recent call last): 


File "D:/23007.py", line 54, in <module> 
xlmain.Wait('ready') 

WaitUntil(timeout, retry_interval, lambda: self.__check_all_conditions(check_method_names)) 


File "C:\Python35\lib\site-packages\pywinauto\timings.py", line 308, in WaitUntil 
raise err 

pywinauto.timings.TimeoutError: timed out 

Process finished with exit code 1 

enter image description here

답변

1

app.XLMAIN를 사용합니까? 창 제목이 XLMAIN과 비슷합니까? 일반적으로 제목은 <file name> - Excel이므로 pywinauto에서 처리 할 수 ​​있습니다. xlmain = app["<file name> - Excel"].

Wait('ready')은 제목이 "XLMAIN" 또는 이와 비슷한 창을 찾을 수 없으므로 예외가 발생했습니다.

일반적으로 pyWin32 표준 모듈 win32com.client을 사용하여 Excel에서 (표준 COM 인터페이스를 통해) 작업하는 것이 좋습니다. 여기에 두 번째 대답을 참조하십시오 : Driving Excel from Python in Windows

+0

제게 조언 해 주셔서 고맙습니다. swapy는 XLMAIN이 내가 왜 그것을 사용했는지 보여줍니다. 문제는 ... 파일을 내보낼 때마다 파일 이름이 바뀝니다 (예 : 처음으로 ... first.xlsx 및 ... 다음 파일 이름은 second.xlsx가됩니다) 아시나요? 파일 이름을 잡는 방법? – everline

+0

정규식 일치를 사용할 수 있습니다. 'xlmain = app.Window_ (title_re = ". * Excel")' –

관련 문제