通过列名使用xlrd获取单元格
如果我在Excel(.xls)表格里有两行数据,像是键值对那样,有没有办法通过输入键(第一行)来获取值(第二行),使用xlrd这个库呢?
举个例子,如果我有 (0,0) = COLOR
和 (1,0) = RED
,我该怎么做才能像这样:
value = sh.col_values("COLOR") ?
我找到的最接近的办法是 sh.col_values(int)
,但这个方法只能让我输入一个索引。
1 个回答
3
你需要沿着这一列往下查找,直到找到 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)
来代替。
补充:更新了内容,现在也可以搜索列了。