使用pywin32从Excel工作表中读取和分析数据

时间:2012-06-19 19:08:41

标签: python excel pywin32

我见过很多关于如何写入excel的例子,我的程序需要从现有数据中读取。我需要读取一列并从中挑出数字(该列是以任意间隔编号的空单元格),然后在到达数据末尾时突破。我现在的代码如下,其中xlsht是工作表名称,x和y是单元格索引,地址是所有数字的列表。

while y < xlsht.UsedRange:
    if str(xlsht.Cells(x,y).Value).isdigit:
        address.append(xlsht.Cells(x,y).Value)
        y += 1
        continue
    else:
        y += 1
return address

现在看来,它在第2行崩溃。我尝试使用

if xlsht.Cells(x,y).Value not None:

但这不起作用。我不知道怎么做这个。另外,我想验证使用

xlsht.UsedRange 

是检测工作表最后一行的正确方法。

1 个答案:

答案 0 :(得分:1)

错误消息没有提供任何有用的线索可能是什么问题。

Soltuion:穷人的调试器。打印所有变量和任何变量,以便您可以看到正在发生的事情:

print 'xlsht=',xlsht
print 'x=',x
print 'usedRange=',xlsht.UsedRange
while y < xlsht.UsedRange:
    print 'y=',y
    print 'cell=',xlsht.Cells(x,y)
    print 'value=',xlsht.Cells(x,y).Value
    if str(xlsht.Cells(x,y).Value).isdigit:
        address.append(xlsht.Cells(x,y).Value)
        y += 1
        continue
    else:
        y += 1
return address

你明白了。如果您使用的是Python 3.x,则需要print('x=',repr(x))