XLRD 超出范围错误

XLRD Out of Range Error

我有一个 excel 电子表格,其中包含如下数据

Serial Number    SAMPLE ID    SAMPLE NAME
value            value        value
value            value        value
value            value        value......

基本上 table 个条目。我不知道 table 中会有多少条目。现在我用 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 给我一个 "list index out of range" 错误。因此,我读取了最后一个有效值,但是一旦我读取了第一个空块,它就会给出错误。如何在不让 xlrd 抛出超出范围错误的情况下确定 "table" 中的条目数量?

您应该查询 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?