使用xlrd按列名称获取单元格

时间:2011-08-07 03:28:57

标签: python xlrd

如果我在Excel(.xls)工作表中有两行,就像一个键值对,有没有办法通过输入xlrd中的键(row0)来获取值(row1)?

例如,如果我有(0,0) = COLOR(1,0) = RED,我该怎么做:

value = sh.col_values("COLOR") ?

我能找到的最接近的是sh.col_values(int),但这只允许我输入索引。

1 个答案:

答案 0 :(得分:2)

您必须向下搜索列,直到找到COLOR,然后在下一行中获取值。

from itertools import product

def value_from_key(sheet, key):
    for row_index, col_index in product(xrange(sheet.nrows), xrange(sheet.ncols)):
        if sheet.cell(row_index, col_index).value == key:
            return sheet.cell(row_index+1, col_index).value

value = value_from_key(sheet, 'COLOR')

如果您知道密钥是偶数行或奇数行,则可以使用xrange(0, sheet.nrows, 2)xrange(1, sheet.nrows, 2)代替。

编辑:已更新为搜索列。