我如何使用 pywinauto 关闭 Excel 文件

How could I close Excel file using 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

为什么使用app.XLMAIN? window的标题和XLMAIN相似吗?通常标题是 <file name> - Excel 以便 pywinauto 可以这样处理:xlmain = app["<file name> - Excel"].

显然 Wait('ready') 引发了异常,因为未找到标题为 "XLMAIN" 或类似内容的 window。

一般来说,我建议使用 pyWin32 标准模块 win32com.client 与 Excel 一起工作(通过标准 COM 接口)。例如,请参阅此处的第二个答案:Driving Excel from Python in Windows