【问题标题】:Python win32com - Call TextBox by Name?Python win32com - 按名称调用文本框?
【发布时间】:2011-11-02 06:21:34
【问题描述】:

我徒劳地尝试使用 pywin32 在 MS Excel 中获取 TextBox 的名称,我尝试录制宏并获得以下提示,但我无法将它们从 VBA 转换为 python。在下面的示例中,我选择了文本框并将其重命名,我想要的是能够通过名称引用它们,我认为这让我很接近。

ActiveSheet.Shapes.Range(Array("TextBox 2")).Select
Selection.ShapeRange.Name = "TextBox 3"

到目前为止,这就是我在 python 中所拥有的。

import win32com.client as win32 
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open("C:\\users\\khillstr\\Testing\\Scripts\\Book1.xlsx")
excel.Visible = True

ws = wb.Worksheets

for w in ws:
    print w.Name
    w.Activate
    canvas = w.Shapes
    for shp in canvas:
        if shp.TextFrame.Characters:
            print shp.TextFrame2.TextRange

【问题讨论】:

  • 我有一个类似的问题——我需要从 excel 的文本框中读取数据,但我没有运行 windows,所以我认为我不能使用 win32com 库。有谁知道另一种适用于 *NIX 的解决方案?

标签: excel textbox pywin32


【解决方案1】:
for shp in canvas:
    print shp.name

名称是文本框形状的读/写属性。您可以使用该属性获取和设置名称。在 Excel 2010 中测试。

【讨论】:

  • 我尝试这样做时出现错误,对象没有属性“名称”。
  • 那是因为它是名称而不是名称。再次感谢您的帮助,这太容易了。
猜你喜欢
  • 1970-01-01
  • 2021-05-28
  • 2013-05-07
  • 2020-04-19
  • 2015-06-07
  • 1970-01-01
  • 2012-02-02
  • 1970-01-01
相关资源
最近更新 更多