【发布时间】: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 的解决方案?