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 № 1Musisz 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.