我一直试图从python内部使用win32com动态创建excel表时添加按钮。我面临的主要问题是无法获得工作表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,我可以使用上面的代码直接添加一个按钮。请向我解释我在这里做错了什么,以及一种获取工作表对象的方法,上面的代码片段将在该对象上工作。谢谢。
发布于 2017-07-17 17:28:01
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)https://stackoverflow.com/questions/45149190
复制相似问题