2011-08-07 78 views
3

Excel(.xls)シートに2つの行がある場合、キーと値のペアのように、キー(row0)を入力して値(row1) xlrdに?私のような何かをするだろうか例えばxlrdを使用して列名でセルを取得

、私は(0,0) = COLOR(1,0) = REDを持っている場合、:

value = sh.col_values("COLOR") ? 

私は見つけることができた最も近いsh.col_values(int)ですが、それは私だけがインデックスに入力することができます。

答えて

2

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)を使用することができ偶数または奇数行にありました。

編集:検索列にも更新されました。

+0

ありがとうございました。そして、それがどの列に入っているのか分からなければどうでしょうか? – David542

+1

私の編集をチェックしてください。シート全体をキーで検索し、すぐ下のセルの値を返します。検索スペースをさらに制限できるのであれば、 'xrange'を変更するだけです。 – agf

+0

素晴らしい、ありがとう。 – David542

関連する問題