/ / Obter o nome da célula por coluna usando xlrd - python, xlrd

Obter o nome de célula por coluna usando xlrd - python, xlrd

Se eu tiver duas linhas em uma planilha Excel (.xls), como um par de valores-chave, existe uma maneira de obter o valor (row1) inserindo a chave (row0) em xlrd?

Por exemplo, se eu tiver (0,0) = COLOR e (1,0) = RED, como eu faria algo como:

value = sh.col_values("COLOR") ?

O mais próximo que consegui encontrar é sh.col_values(int), mas isso só me permite entrar em um índice.

Respostas:

2 para resposta № 1

Você tem que pesquisar a coluna até encontrar COLOR então pegue o valor na próxima linha.

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")

Se você soubesse que as chaves estavam em linhas pares ou ímpares, você poderia usar xrange(0, sheet.nrows, 2) ou xrange(1, sheet.nrows, 2) em vez de.

Editar: atualizado para pesquisar colunas também.