XLRD超出范围错误

时间:2015-08-17 13:00:32

标签: python excel xlrd

我有一个包含以下数据的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超出范围错误的情况下确定“表”中的条目数量?

1 个答案:

答案 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?