我见过很多关于如何写入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
是检测工作表最后一行的正确方法。
答案 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))