我有一张Excel表格,并且这样调用了numrows:
sheet = self.rbook.sheet_by_index(0)
numrows = (sheet.nrows)
返回6
而不是5
的值。第六行中第0,1或2列右侧的任何单元格中都没有任何内容。
我制作了一些模拟Excel文件,其中一个没有任何内容,它正确返回0
。
答案 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'
简单,糟糕,但可以:-)