どうも、とがみんです。
この記事では、PythonでGoogleスプレッドシートを操作するにあたって利用するgspreadの使い方についてまとめていきます。
Pythonでスプレッドシートを操作する前準備に関しては、以下の記事を参考にしてください。
「gspread」に用意されているメソッドについて簡単に紹介していきます。
Contents
「gspread」の使い方
Googleスプレッドシートを操作するライブラリ「gspread」の使い方について紹介していきます。
スプレッドシートを開く方法
以下のコードにより、スプレッドシートの情報を取得します。
1 2 3 | sh = gc.open('ファイル名') sh = gc.open_by_key('スプレッドシートのキー') sh = gc.open_by_url('URL') |
スプレッドシートのキーは以下のスプレッドシートのキーと書かれている部分の文字列で、URLは以下全体です。
スプレッドシートを作成する方法
以下のコードでワークシートを作成することができます。
titleでワークシートの名前を指定し、rows、colsに行数と列数を指定します。
1 2 | #スプレッドシートを作成する方法 newWorksheet = sh.add_worksheet(title="とがみん", rows="10", cols="5") |
ワークシートの選択方法
スプレッドシート内のワークシートの取得方法についてです。
get_worksheet()の引数には、ワークシートのインデックスが入ります。
「0」では「シート1」、「1」では「とがみん」のワークシートを取得します。
1 2 | worksheet = sh.get_worksheet(0) print(worksheet.title)#出力:"シート1" |
また、以下のように書くと、全てのワークシートの情報を配列として取得します。
1 | worksheet_list = sh.worksheets() |
ワークシートの作成・削除方法
del_worksheet()メソッドで、ワークシートの削除を行うことができます。
newWorksheetには、「とがみん」というワークシートが入っているので、以下のコードで、それを削除することができます。
1 2 | #ワークシートの削除 sh.del_worksheet(newWorksheet) |
セルの値を取得する方法
セルの値を取得するメソッドについてです。
以下のコードでは、セルを指定し、その値を取り出しています。
1 2 3 4 5 | val = worksheet.acell('B1').value #出力:あ val = worksheet.cell(1, 2).value #出力:あ |
しかし、上記のコードだと、スプレッドシート 上で関数が使われていた場合、その関数ではなく、その関数の結果を取得してしまいます。
以下のように、value_render_option=’FORMULA’を指定することによって、スプレッドシート上に書かれた関数をそのまま取得することができます。
1 2 | val = worksheet.acell('B1', value_render_option='FORMULA').value #出力:'=A1' |
以下のコードは、それぞれ「行の取得」、「列の取得」、「すべてのデータを取得」のコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 | #セルの値を取得 rowValues_list = worksheet.row_values(1) #['あ','か','さ','あ'] colValues_list = worksheet.col_values(1) #['あ','い','う','え','お'] allValues_list = worksheet.get_all_values() # [['あ', 'か', 'さ', 'あ'], # ['い', 'き', 'し', 'い'], # ['う', 'く', 'す', 'う'], # ['え', 'け', 'せ', 'え'], # ['お', 'こ', 'そ', 'お']] |
セルの検索
セルを検索する時は、find()またはfindall()を使用します。
1 2 3 | #セルの検索方法 cell = cell = worksheet.find("検索する値") cell_list = worksheet.findall("検索する値") |
find()の場合、最初に検出したセルの情報のみ格納しますが、findall()は検索する値にマッチするセルの情報を全て取得します。
セルへの書き込み
以下のコードはB1の位置にとがみんと書き込む、(1行,2列)の位置にとがみんと入力するコードです。
1 2 | worksheet.update_acell('B1', 'とがみん') worksheet.update_cell(1, 2, 'とがみん') |
また、以下が、セルの値をまとめて更新する方法です。
1 2 3 4 | cell_list = worksheet.range('A1:B10') for cell in cell_list: cell.value = '更新する値' worksheet.update_cells(cell_list) |
まとめ
PythonでGoogleスプレッドシートを操作するにあたって利用するgspreadの使い方についてまとめました。
参考文献
>More examples of gspread usage
>gspreadライブラリの使い方まとめ!Pythonでスプレッドシートを操作する