2017-06-09 4 views
0

python 3.6私はExcelとWord、この場合はデータ処理がPythonで行われる自動レポート用のWordと通信するためにCOMインターフェイスを使用しています。python COM oleオブジェクトのメンバーを取得

私はpythonがどのようにdir()関数の使用に似たようなCOMオブジェクトのメンバーを得ることができるのか分かりません。私のメソッドとプロパティのリストを提供していません

def wordOpen(wordfile): 
    pythoncom.CoInitializeEx(pythoncom.COINIT_APARTMENTTHREADED)  
    wApp = win32com.client.DispatchEx('Word.Application') 
    wDoc = wApp.Documents.Open(wordfile) 
    wApp.Visible = 1 
    wApp.Activate 
    wRange = wDoc.Content 
    return wApp, wDoc, wRange 

wApp, wDoc, wRange = wordOpen(wordfile) 

dir(wDoc) 

..: (以前はMATLABを使用して、私はこれを取得するために.getまたは.invokeメソッドを使用します)

ので、コードは次のようになりWord文書オブジェクト(wAppとwRangeに似ています)。

同様に私はinspect.getmembers(wDoc)を試しましたが、これも私が探しているメソッド/プロパティのリストを提供していません。

Excelと通信するときは、VBAエディタに移動してリストを取得しましたが、これはIPython コンソールから直接行う方法がありますか?

答えて

0

もう少し検索して自分で見つけましたか?上の例では 'dynamic dispatching'を使用していますが、代わりに 'static dispatching'を使用します。それはコードを変更するものではなく、一回限りのアクションしか伴いません。

Dynamicは、これらのオブジェクトを作成するためのすばやくやや汚い方法です。そして、Pythonはオブジェクトのタイプについて何も知りません。 静的とは、タイプライブラリ(この場合はWordオブジェクト)を作成するためにコマンドラインからmakepy.pyを実行しなければならないことを意味し、一度実行されると、COMは次回起動時にオブジェクトに関するすべての情報を知っていますオブジェクト。

この手順は非常に簡単で、プロジェクトに参照を追加するVBAアクションに匹敵します。

関連する問題