【问题标题】:Parsing a column using openpyxl使用 openpyxl 解析列
【发布时间】:2012-06-23 22:45:51
【问题描述】:

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

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: tuple index out of range”,我不知道这是什么意思。我尝试打印行以查看它包含的内容,但它给我的只是一组空括号。有人知道我错过了什么吗?

【问题讨论】:

    标签: python excel openpyxl


    【解决方案1】:

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

    但是我可以解释您遇到错误的原因是什么,以及您必须朝哪个方向发展。列表 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
    

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

    【讨论】:

    • 令人沮丧的是,在这样做之后,它总是为每一行打印出空括号。我正在读取的 excel 表有 106 行数据,它为每行打印出 106 组空括号。程序是否有任何原因会读取文件,但看不到文件中的任何数据?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    • 1970-01-01
    • 2017-04-22
    • 1970-01-01
    相关资源
    最近更新 更多