表計算をgoogle spread sheetで管理している人も多いと思います
クラウド上で管理や共有ができるのでリモートからでも操作出来て便利です
エクセルファイルを編集するときは、pandasやopenpyxlを使用しますが、google spread sheetを編集するときはgspeadというライブラリを使用します
最初のgoogle cloudとの連携が面倒ですが、ぜひ活用してみてください
・環境
windows 11
gspread 6.1.4
・google cloudの設定
google accountにログイン
google cloudの上部メニューのコンソールをクリック
上部メニューの新しいプロジェクトを作成をクリック
プロジェクト名を入力し、場所は組織なしでOK
左上のナビゲーションメニューよりAPIとサービスの有効なAPIとサービスを選択
APIとサービスを有効にするを選択
APIとサービスを検索からgoole sheet APIとgoogle drive APIを選択して有効にする
ナビゲーションメニューよりAPIとサービスより認証情報を選択
認証情報を作成よりサービスアカウントを選択
サービスアカウント名を記入し続行
サービスアカウントのロールを基本の編集者を選択し続行
ユーザーにこのサービス アカウントへのアクセスを許可は空欄のまま完了
作成したサービスアカウントを選択する
鍵のタブをクリックし下のほうのキーの追加をから新しい鍵を作成
JSON形式でダウンロードする
・google driveの設定
google driveにログイン
アクセス用の新しいフォルダを作成
フォルダID(URLのfolders/の後の英数字の部分)を確認、コピーしておく
先ほど作成したJSON形式の鍵のファイル内にあるclient_emailの値をコピーする
google driveのフォルダ名の右の矢印をクリックして共有から共有を選択
先ほどJSONファイルからコピーしたアドレスを貼り付け、共有を選択
・pythonファイル作成
必要なライブラリをインストールします
pip install gspread
まずは以下のコードでgoogle driveの指定したフォルダに新しいファイルを作成します
先ほど、google cloudでダウンロードした鍵のファイルのパスを入力します
今回は作業ディレクトリに置いています
import gspread
gc=gspread.service_account(
filename="gspred-test.json" #鍵のパスを入力
)
#ファイルを作成
book=gc.create(
"test_1", #ファイル名
folder_id="16CYDBSLCiR081Q-GQD7wKmv3T6WT_XKv" #google driveのフォルダIDを入力
)
これで指定したフォルダに新しいスプレッドシートのファイルが作成できました
すでに存在するファイルを読み込む場合はこちら
#ファイルを読み込み
book=gc.open(
"test_1",
folder_id="16CYDBSLCiR081Q-GQD7wKmv3T6WT_XKv"
)
次に編集するワークシートを指定します
#シートの番号で指定
w_sheet=book.get_worksheet(0)
#シートの名前で指定
w_sheet=book.worksheet("Sheet1")
新しいシートを作成するときはこちら
# 新しいワークシートを作成 タイトルと行列の数を指定
new_sheet = book.add_worksheet(title="NewSheet", rows=100, cols=20)
シート名を変更する場合はこちら
# シート名を変更
new_title = "New Sheet Name"
w_sheet.update_title(new_title)
セルに入力には以下のコードを追加します
#ワークシートの1枚目を取得、オブジェクトに代入
w_sheet=book.get_worksheet(0)
#ワークシートのセルを指定して文字を入力
w_sheet.update_acell("A1","Hello world")
セルの値を取得する方法はこちら
#セルの値を取得
val=w_sheet.acell("A1").value
print(val)
#Hello world
次回の記事では、エクセルから表データをpandasで読み取り、スプレッドシートに書き込んで編集していきます
コメント