2016-09-22 32 views
0

私はファイルを処理できないという問題があります。pywinautoを使用してExcelファイルを閉じるにはどうすればいいですか

私はswapy + pywinautoを使用していました。
プログラムのエクスポートは、別の名前(例:.. ..)のファイルをExcelします 私は輸出を閉じるために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インターフェイス経由)での作業をお勧めします。ここで2番目の答えを参照してください:Driving Excel from Python in Windows

+0

私にアドバイスをしてくれてありがとう.. swapyはXLMAINを示しています。 問題は... Excelファイルをエクスポートするとファイル名は毎回変わります(例:初めて... first.xlsxとか.....nextファイル名はsecond.xlsxとなります) あなたは知っていますかどのようにファイル名をキャッチする? – everline

+0

正規表現マッチングを使用することは可能です。 'xlmain = app.Window_(title_re ="。* Excel ")' –

関連する問題