来自xlrd sheet.nrows

时间:2015-10-05 17:56:25

标签: python excel xlrd

enter image description here

我有一张Excel表格,并且这样调用了numrows:

sheet = self.rbook.sheet_by_index(0)
numrows = (sheet.nrows)

返回6而不是5的值。第六行中第0,1或2列右侧的任何单元格中都没有任何内容。

我制作了一些模拟Excel文件,其中一个没有任何内容,它正确返回0

2 个答案:

答案 0 :(得分:0)

这应该让你开始。正如在评论中暗示的那样,由单个空格(" "组成的字符串是一个值,这就是XLRD返回6的原因,因为你有一些这样的值第6行。

这里的方法基本上是使用自定义函数到达工作表中的“最后一行”。此函数迭代指定col_values的{​​{1}}。所以在你的功能中你可以这样做:

col_num

通过使numrows = getLastRow(sheet, 0) 参数可以传递给这个函数,它允许一些灵活性来查询不同的列,而不需要一个不同的函数或完全不同的逻辑分支来容纳,你可以省略可选的{{1返回本机col_num属性的参数。

col_num

答案 1 :(得分:0)

在这种情况下,我使用以下简单构造:

number_of_rows = 0
try:
    while current_sheet.cell(number_of_rows,0).value != '':
        number_of_rows += 1
except:
    number_of_rows -= 1

您可以计算行数和列数。只需将'number_of_rows,0'替换为'0,number_of_rows'

简单,糟糕,但可以:-)