2017-07-17 1 views
0

私は動的に作成されたExcelシートにpush32を追加しようとしていましたが、内部ではwin32comを使用していました。私が直面している主な問題は、ワークシートメソッドを適用できるワークシートCOMObjectを取得できないということです。私は、これまでに次のコードを持っている:これは、次の1つの出力と1つの誤差与えPythonでワークシートCOMObjectを取得

from win32com.client import DispatchEx, Dispatch 
excel = Dispatch('Excel.Application') 
wb = excel.Workbooks.Open('some/path/') 
ws = wb.Worksheets.Add() 
print(ws) 
ws.Buttons.Add(786, 323.25, 109.5, 29.25) 

<COMObject Add> 
AttributeError: 'function' object has no attribute 'Add' 

を私は「WS」は、直接私ができるれているワークシートのCOMObjectすることを期待していました上記のコードを使用して押しボタンを追加します。ここで間違っていることと、上記のコードスニペットが動作するワークシートオブジェクトを取得する方法について説明してください。ありがとう。

答えて

0

ws.Buttonsは、呼び出されたときにCOMObjectを返すメソッドです。したがって、その直後にかっこを追加する必要があります。

from win32com.client import DispatchEx, Dispatch 
excel = Dispatch('Excel.Application') 
wb = excel.Workbooks.Open('some/path/') 
ws = wb.Worksheets.Add() 

# Show the difference between `ws.Buttons` and `ws.Buttons()` 
print(type(ws.Buttons)) 
print(type(ws.Buttons())) 

# Add button to worksheet 
ws.Buttons().Add(786, 323.25, 109.5, 29.25) 
関連する問題