CODE Python

gspreadライブラリのまとめ

更新日:

Pythonとスプレッドシートの連携で使われるgspreadライブラリ。
よく使うものをまとめてみました!

目次

  1. 最初に
  2. 参照
  3. 追加&更新
  4. 検索
  5. 削除
  6. まとめ

最初に

まずは、こちらの連携が終わっていることが前提です。

そしてシートを取得です。

# 共有設定したスプレッドシートのシートを取得
wb = gc.open_by_key(SPREADSHEET_KEY)
ws = wb.worksheet("シート")

 

 

参照

セルの値を取得です。
(printの下に記載しているコメントは結果です)
どちらもA1セルの値を取得します。

# A1セルの値を取得
val = int(ws.acell('A1').value)
print(val)
# 100
val = int(ws.cell(1, 1).value)
print(val)
# 100

 

 

複数のセルの値を取得です。
「A1」「B1」「A2」「B2」・・・「A10」「B10」の順に取得します。

# A1:B10の値を取得
ran = ws.range("A1:B10")
for i in ran:
    print(i.value)
# A1
# B1
# A2
# B2
・
・
・
# A10
# B10

 

 

列の値を取得します。
A列の値を取得、データの型はリストです。

# A列を取得
col_list = ws.col_values(1)
for i in col_list:
    print(i)
# A1
# A2
・
・
・
# A10

 

 

行の値を取得します。
1行目の値を取得、データの型はリストです。

# 1行を取得
row_list = ws.row_values(1)
for i in row_list:
    print(i)
# A1
# B1
# C1

 

 

追加&更新

セルに値を記入します。
更新もできます。(ここではセルは空白ですが、既に値があるセルに上書きもできます)
A1とB1に記入する値を表示させます。

# A1に「A1を記入」を記入
ws.update_acell("A1", "A1に記入")
# B1に「B1を記入」を記入
ws.update_cell(1,2, "B1に記入")

 

 

複数のセルに値を記入します。(1行)

# 複数のセルに記入
row_list = ["A1に記入", "B1に記入", "C1に記入"]
ws.append_row(row_list)

 

 

複数のセルに値を記入します。(複数行)

# 複数のセルに記入
data_list = [
          ["A1追加", "B1追加"],
          ["A2追加", "B2追加"],
        ]
for row_data in data_list:
    ws.append_row(row_data)

 

 

検索

検索です。
シート内に同じ文字列が複数ある場合、1番最初に出現したセルを取得します。

cell = ws.find('B1')
print(cell.row) # 一致したセルの行番号を取得
# 1
print(cell.col) # 一致したセルの列番号を取得
# 2

 

 

今度は複数検索して、一致したセルを一次元のリストに格納します。
この例ではセルB1(1行2列)とB3(3行2列)が検索対象になります。

cell_list = ws.findall('B1')
for cell in cell_list:
  print(f"{cell.row}行, {cell.col}列") 
# 1行, 2列
# 3行, 2列

 

 

検索とは違いますが、シートの行数と列数を取得します。

print(ws.row_count) # シートの行数を取得
# 5
print(ws.col_count) # シートの列数を取得
# 3

 

 

削除

指定した行を削除します。

ws.delete_row(2) # 2行目を削除

 

 

指定した列を削除します。

ws.delete_columns(2) # 2列目を削除

 

 

シートの値を全て削除します。

ws.clear() # シートの値を全て削除

 

 

まとめ

今回のライブラリを組み合わせると大抵のことはできるのかなと思います。

-CODE, Python
-, , , , , ,

Copyright© kerublog , 2021 All Rights Reserved Powered by STINGER.