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 № 1Você 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.