python excel读取最后一个空单元格

时间:2015-03-31 16:48:04

标签: python python-2.7 xlrd

我正在尝试读取指定行数的最后一个空单元格。

这是我的代码:

for j in xrange(0,REPEAT_CONST,1):              
            if r_sheet.cell_type(row+j,0)== xlrd.XL_CELL_EMPTY:
                    break

此代码仅在单元格早先写入并删除时才有效。如果从未编辑过单元格,则无效。不知道如何处理这个问题。 你能帮我做一下吗? 我将非常感谢你的支持。

此致 帕

1 个答案:

答案 0 :(得分:0)

您遇到的错误表明rowxcolx参数超出范围for this sheet

  

在小区访问功能中," rowx"是一个行索引,从零开始计算," colx"是一个列索引,从零开始计数。行/列索引和切片位置的负值以预期方式得到支持。

我刚刚发现了这一点(之前从未使用过XLRD),但如果您查询r_sheet.nrows,我打赌您会发现该值小于row+j。似乎xlrd只读取工作表的一部分,实质上是Excel中的UsedRange

所以你可以使用一些异常处理,try/catch块,或者你可以这样做。请注意,只要row+j大于该表的nrows属性,就应该在布尔表达式的第一部分上短路。

if (row+j <= r_sheet.nrows-1) and (r_sheet.cell_value(row+j,0) = ''):
    break

或者,甚至可能使用原始方法:

if (row+j <= r_sheet.nrows-1) and (r_sheet.cell_type(row+j,0)== xlrd.XL_CELL_EMPTY):
    break