1

我有以下算法来解析整数值的列:

def getddr(ws):
address = []
col_name = 'C'
start_row = 4
end_row = ws.get_highest_row()+1

range_expr = "{col}{start_row}:{col}{end_row}".format(col=col_name, start_row=start_row, end_row=end_row)

for row in ws.iter_rows(range_string=range_expr):
    print row
    raw_input("enter to continue")
    cell = row[0]
    if str(cell.value).isdigit:
        address.append(cell.value)
    else:
        continue

return address

这在说“IndexError:元组索引超出范围”时崩溃cell = row[0],我不知道这是什么意思。我尝试打印行以查看它包含的内容,但它给我的只是一组空括号。有人知道我错过了什么吗?

4

1 回答 1

3

说你有什么问题并不容易,因为没有你试图处理的输入数据。

但是我可以解释您遇到错误的原因是什么,以及您必须朝哪个方向发展。该列表row包含 0 个元素 ( row = []),因此您不能说row[0]- 没有 row[0]。您必须更改的第一件事是检查您的列表有多长,以及何时足够长进行其他操作:

for row in ws.iter_rows(range_string=range_expr):
    print row
    raw_input("enter to continue")
    if len(row) > 0:
      cell = row[0]
      if str(cell.value).isdigit:
        address.append(cell.value)
      else:
        continue

无论如何,这是您必须做的第一步。

于 2012-06-21T16:46:18.387 回答