2016-09-22 285 views
0

我遇到了无法打开excel文件的问题。如何使用pywinauto关闭Excel文件

我使用的是swapy + pywinauto。
程序导出excel文件具有不同的名称(例如时间..) 我用swapy关闭导出excel。

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,以便我为什么使用它。 问题是...当我输出excel文件时,文件名每次都会改变..(例如:第一次让我们说... first.xlsx和..next文件名将是second.xlsx) 你知道吗如何捕捉文件名? – everline

+0

可以使用正则表达式匹配。 'xlmain = app.Window_(title_re =“。* Excel”)' –