在 Python 中获取工作表 COMObject
Obtain Worksheet COMObject in Python
我一直在尝试使用 win32com 从内部 python 向动态创建的 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,我可以使用上面的代码直接在上面添加一个按钮。请向我解释我在这里做错了什么,以及获取上面代码片段可以在其上运行的 Worksheet 对象的方法。谢谢。
ws.Buttons
是一种 returns 调用 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)
我一直在尝试使用 win32com 从内部 python 向动态创建的 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,我可以使用上面的代码直接在上面添加一个按钮。请向我解释我在这里做错了什么,以及获取上面代码片段可以在其上运行的 Worksheet 对象的方法。谢谢。
ws.Buttons
是一种 returns 调用 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)