使用xlrd按列名获取单元格

2024-06-30 15:22:43 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我在Excel(.xls)工作表中有两行,就像键值对一样,是否可以通过在xlrd中输入键值(row0)来获取值(row1)?

例如,如果我有(0,0) = COLOR(1,0) = RED,我将如何执行如下操作:

value = sh.col_values("COLOR") ?

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


Tags: valueshcolredxlsexcelcolorint
1条回答
网友
1楼 · 发布于 2024-06-30 15:22:43

必须向下搜索列,直到找到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)

编辑:也更新为搜索列。

相关问题 更多 >