使用openpyxl解析列

时间:2012-06-21 16:26:33

标签: python excel openpyxl

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

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

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

1 个答案:

答案 0 :(得分:3)

要说明问题是什么并不容易,因为您没有尝试处理的输入数据。

但我可以解释一下你得到错误的原因是什么,以及你必须去哪个方向。列表row包含0个元素(row = []),因此您无法说row[0] - 没有行[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

这是你必须要做的第一步。