猿问

如何从COM客户端获取Excel单元格的值

现在,我无法使用以下代码从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....

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


我究竟做错了什么?


POPMUISE
浏览 144回答 1
1回答

慕仙森

根据有关comtypes的文档,带参数的属性使用索引符号访问。wb.Sheets[1]和worksheet.Cells[2]是带有参数而不是方法的属性。另外,Value[3]是带有可选参数的属性。所以这应该工作:from comtypes.client import CreateObjectfilename=r'testrap.xlsx'app = CreateObject("Excel.Application")app.Visible = Truewb = app.Workbooks.Open(filename)worksheet = wb.Sheets[1]for row in range(1,11):    data = worksheet.Cells[row, 1].Value()    print(data)但是不在Windows计算机上,因此无法测试此ATM。
随时随地看视频慕课网APP

相关分类

Python
我要回答