Python win32com EXCEL返回无

时间:2013-10-21 15:42:27

标签: python windows excel win32com

这是我的第一个问题,我对蟒蛇和英语也有点不好,我希望你能理解......

我正在尝试循环遍历excel列中的行。最后一行返回None,我的代码出了什么问题?

import win32com.client

excel = win32com.client.Dispatch("Excel.Application")

for n in range(1,200):
    n=repr(n)
    cell = "b"+ n
    lis = (excel.ActiveWorkbook.Activesheet.Range(cell))
    if lis != "":
        print(lis)
    else:
        print("There's nothing here")

它为白色行打印无,而不是此处没有任何内容。

非常感谢你的帮助。

2 个答案:

答案 0 :(得分:0)

因为空行将返回None值而不是空字符串。

因此,请将其与None类型进行比较:

if lis is not None:
    print(lis)
else:
    print("There's nothing here")

这应该可以正常工作。

答案 1 :(得分:0)

None != ""。您应该使用is not运算符进行测试:

if lis is not None:

请注意,您不应该像其他人建议的那样使用!= NoneFrom PEP8

  

应该始终使用isis not来比较像None这样的单例,而不是等式运算符。

编辑:根据评论中的讨论,lis应按如下方式分配:

lis = excel.ActiveWorkbook.Activesheet.Range(cell).GetValue()