现在,我无法使用以下代码从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....
打印在屏幕上,而不是单元格的值。
我在做什么错了?
答案 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。