python - 自动化 Excel 从 Python 获取 "TypeError: ' unicode' 对象不可调用“在 Range.Address 上

标签 python excel com

根据标题,当我在 Python 2.6 中运行以下代码时,出现以下错误:

print range.Address(RowAbsolute=False, ColumnAbsolute=False)"

我知道这个错误是什么意思,但是 MSDN 页面 ( http://msdn.microsoft.com/en-us/library/aa174749(v=office.11).aspx ) 说这是有效的并且里面有一个例子。我已经在 EXCEL VBA 中尝试过这个并且它有效。

TypeError: 'unicode' object is not callable

有什么想法吗?

谢谢。

杜安德

import win32com.client

xlApp =  win32com.client.DispatchEx('Excel.Application')
xlApp.Visible = True

objWkb = xlApp.Workbooks.Add()
objSht = objWkb.Worksheets(1)
objSht.Cells(2,2).Value = '1'
objSht.Cells(2,3).Value = '2'

range = objSht.Cells(2,4)
range.Value = '=%s+%s' % (objSht.Cells(2,2).Address, objSht.Cells(2,3).Address)
range.AddComment('Test Comment')

print range.Address
print range.Address(RowAbsolute=False, ColumnAbsolute=False)

objWkb.Close(SaveChanges=False) #to avoid prompt

xlApp.Quit()
xlApp.Visible = 0 #must make Visible=0 before del self.excelapp or EXCEL.EXE remains in memory.
del xlApp

最佳答案

Range.Address 是一个参数化属性。它在像属性一样访问时提供一个值,但也可以像带参数的方法一样被调用。 PyWin32 不直接支持参数化属性。它通过为每个支持参数的属性提供一个 GetXXXXX 方法来解决这个问题。使用:

range.GetAddress(RowAbsolute=False,ColumnAbsolute=False)

它可以与关键字一起使用,也可以不与关键字一起使用。

使用其中之一:

range.GetAddress()
range.Address

读取属性。

关于python - 自动化 Excel 从 Python 获取 "TypeError: ' unicode' 对象不可调用“在 Range.Address 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6072851/

相关文章:

python - 分割数据的美丽汤策略

python - 求解大数的模线性同余

excel - excel中的静态时间戳

python - 遍历 csv/xlsx 文件 python 3 中的行和列

c# - 尝试在 C++ 中加载 COM 包装的 DLL 时出现未处理的异常

python - 使用并发.futures 上传 200 万个文件(每个文件大约 30 KB 从 EC2 到 S3),ThreadPool 需要大量时间

python - 用于 uvicorn 的 unix 套接字上的 Nginx 反向代理不起作用

C# UsedRange 计数不正确

c++ - 如何将接口(interface)指针传递给线程?

windows - D 对 COM 的支持