首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python获取工作表COMObject

用Python获取工作表COMObject
EN

Stack Overflow用户
提问于 2017-07-17 16:24:50
回答 1查看 867关注 0票数 0

我一直试图从python内部使用win32com动态创建excel表时添加按钮。我面临的主要问题是无法获得工作表COMObject,我可以在此上应用工作表方法。到目前为止,我有以下代码:

代码语言:javascript
复制
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)

这会给出以下一个输出和一个错误:

代码语言:javascript
复制
<COMObject Add>
AttributeError: 'function' object has no attribute 'Add'

我原以为'ws‘将是一个工作表COMObject,我可以使用上面的代码直接添加一个按钮。请向我解释我在这里做错了什么,以及一种获取工作表对象的方法,上面的代码片段将在该对象上工作。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-17 17:28:01

ws.Buttons是一个在调用时返回COMObject的方法。因此,您需要在它后面直接添加括号。

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45149190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档