5

GSpread を使用することで、次のようなすべての要素を持つ Google スプレッドシートからセル範囲が返されます。

<Cell R1C1 'Sandero'>

ここからセル値を取得する方法を知っています:

cell.value

しかし、アドレス (この場合は R1C1) も個別に取得したいと考えています。(R1,C1) である必要があり、(1,1) 形式で取得できる場合はさらに優れている必要があります (おそらく辞書を使用して?)

後でこれらの値を使用してグラフを宣言するため、アドレスも必要であることがわかります。

Python 2.7 と最新の Gspread ライブラリを使用しています。

どんな助けでも大歓迎です。

4

2 に答える 2

6

セルの座標を取得する最良の方法は、セルのインスタンス プロパティrowとを使用することcolです。このようにして、コードを次のように単純化できます。

for cell in cell_list:
    print cell.value
    print "Row:", cell.row, "Column:", cell.col

タプルを取得するには、括弧で囲みます: (cell.row, cell.col).

私は gspread の作成者なので、セルの座標を取得する方法を明確にするためにライブラリ ページを更新しました。足りない部分のご指摘ありがとうございます。

于 2012-12-25T11:58:50.007 に答える
0

何時間もかけて、なんとか汚い仕事を自分でやり遂げることができました。

だから私はすでに開いているGoogleスプレッドシートから取得したセル範囲内のデータを持っています:

cell_list = worksheet.range('A1:J8')

これには<Cell R1C1 'Sandero'>but なども含ま<Cell R1C2 '23'>れます。

<Cell R1C1ここで、プロジェクトで後でグラフを作成するために使用する座標 (1,1) を部分から取得するために、最善の方法は次のようになることに気付きました。

for cell in cell_list: # will check all elements of the worksheet range A1:J8
        print cell # for example at one point this is <Cell R1C1 'Sandero'>
        print cell.value # Sandero
        cella = re.findall(r'\d+',str(cell)) # will take only numbers from <Cell R1C1 'Sandero'>
        print cella[:2] # will give you the first two elements of list cella. 
                         #In this case '1','1'. This is exactly what I need.
      # to specify [:2] it's important if it would be <Cell R1C2 '23'>. 
      # Otherwise cella would return '1','2','23'. Nasty. 
       # I need only coordinates to use them as index in graf. 

次に、座標を として参照するように注意する必要がありint(cella[0])ますint(cella[1])re.findall(r'\d+',str(cell))

私のソリューションは非常に面倒で複雑すぎると思いますが、少なくとも機能します。そのスタックがオーバーフローするのをまだ待っているので、誰かがより良いアイデアを持っていることを願っています.

于 2012-12-19T21:05:41.593 に答える