我有一个包含以下数据的Excel电子表格
Serial Number SAMPLE ID SAMPLE NAME
value value value
value value value
value value value......
基本上是一个条目表。我不知道该表中有多少条目。现在我用xlrd编写Python代码以从Excel中提取值。我想要做的第一件事是确定存在的条目数量,所以我使用以下代码:
kicker = 0
counter = 0
rownum = 5
colnum = 1
while (kicker == 0):
if sh.cell_value(rowx=rownum, colx=colnum) is None:
kicker = 1
else:
counter = counter + 1
rownum = rownum + 1
print("done")
代码扫描值并成功读取第一个字段中具有值的条目。问题是,当我到第一行没有第一个字段的值时,xlrd给我一个“列表索引超出范围”错误。因此,我读取了最后一个有效值,但是一读到第一个空块,它就会给出错误。如何在没有xlrd超出范围错误的情况下确定“表”中的条目数量?
答案 0 :(得分:1)
你应该查询nrows
而不是使用潜在的无限循环。
kicker = 0
counter = 0
colnum = 1
for rownum in range(5, sh.nrows):
if sh.cell_type(rowx=rownum, colx=colnum) in (xlrd.XL_CELL_EMPTY, xlrd.XL_CELL_BLANK):
kicker = 1
else:
counter = counter + 1
print("done")
测试我在这里查看的空单元格How to detect if a cell is empty when reading Excel files using the xlrd library?。