如何使用Python和COM客户端获取Excel单元格的价值

时间:2018-08-13 21:25:20

标签: python excel com comtypes

现在,我无法使用以下代码从COM和Python读取的Excel单元中检索值:

from comtypes.client import CreateObject
filename=r'testrap.xlsx'
app = CreateObject("Excel.Application")
app.Visible = True
wb = app.Workbooks.Open(filename)
worksheet = wb.sheets(1)

for row in range(1,11):
    data = worksheet.Cells(row,1).Value
    print(data)

我总是

comtypes.client.lazybind.NamedProperty object at 0x....

打印在屏幕上,而不是单元格的值。

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

根据the documentation for comtypes,带有参数的属性使用索引符号访问。 wb.Sheets [1] worksheet.Cells [2] 是带有参数而不是方法的属性。另外,Value [3] a property with an optional argument。所以这应该工作:

from comtypes.client import CreateObject
filename=r'testrap.xlsx'
app = CreateObject("Excel.Application")
app.Visible = True
wb = app.Workbooks.Open(filename)
worksheet = wb.Sheets[1]

for row in range(1,11):
    data = worksheet.Cells[row, 1].Value()
    print(data)

但是不在Windows计算机上,因此无法测试此ATM。