如果我在Excel(.xls)工作表中有两行,就像一个键值对,有没有办法通过输入xlrd中的键(row0)来获取值(row1)?
例如,如果我有(0,0) = COLOR
和(1,0) = RED
,我该怎么做:
value = sh.col_values("COLOR") ?
我能找到的最接近的是sh.col_values(int)
,但这只允许我输入索引。
答案 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)
代替。
编辑:已更新为搜索列。