XLRD超出范围错误

我有一个Excel电子表格包含数据如下

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

基本上是一个条目表。 我不知道表中有多less条logging。 现在我用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抛出超出范围的错误?

你应该查询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") 

testing一个空单元格我在这里查找如何检测使用xlrd库读取Excel文件时单元格是否为空? 。