/ / Pobierz komórkę według nazwy kolumny za pomocą xlrd - python, xlrd

Pobierz komórkę według nazwy kolumny za pomocą xlrd - python, xlrd

Jeśli mam dwa wiersze w arkuszu programu Excel (.xls), podobnie jak para klucz-wartość, czy istnieje sposób na uzyskanie wartości (wiersz 1) przez wpisanie klucza (wiersz0) w xlrd?

Na przykład, jeśli mam (0,0) = COLOR i (1,0) = RED, jak mógłbym zrobić coś takiego:

value = sh.col_values("COLOR") ?

Najbliższe, co udało mi się znaleźć, jest sh.col_values(int), ale to pozwala mi tylko wprowadzić indeks.

Odpowiedzi:

2 dla odpowiedzi № 1

Musisz szukać w kolumnie, aż znajdziesz COLOR następnie uzyskaj wartość w następnym wierszu.

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

Jeśli wiesz, że klucze były w parzystych lub nieparzystych rzędach, możesz użyć xrange(0, sheet.nrows, 2) lub xrange(1, sheet.nrows, 2) zamiast.

Edytuj: zaktualizowano również do kolumn wyszukiwania.