目次
目次
Google Cloudプロジェクトの設定
Googleクラウドプロジェクトの作成と構成
API資格情報の生成と保護
Googleシートへのアクセスを許可します
GSPREADを理解する
セル参照に関する簡単なメモ
接続と開くスプレッドシートの確立
Googleシートの作成と管理
ワークシートの管理
ワークシートの選択
新しいワークシートを作成します
ワークシートの改名
ワークシートの削除
細胞特性
新しい行と列の追加
特定の位置での挿入
テーブル範囲の後の挿入
セルと範囲の値を取得します
単一のセルを取得します
ワークシートまたは範囲のすべてのセルを取得します
セルの範囲の値を取得します
行または列からすべての値を取得します
ワークシート値全体を取得します
セルと範囲の更新
単一のセルの更新
さまざまなセルの更新
複数の範囲のセルを更新します
行と列の削除
セルの検索
セルのフォーマット
セルとワークシートのクリア範囲
Google APIの制限
結論
キーテイクアウト
よくある質問
ホームページ テクノロジー周辺機器 AI Pythonを使用したGoogleシートオートメーション| Analytics Vidhya

Pythonを使用したGoogleシートオートメーション| Analytics Vidhya

Apr 13, 2025 am 10:01 AM

Googleシートは、Excelに最も人気があり広く使用されている代替品の1つであり、リアルタイムの編集、バージョンコントロール、Googleスイートとのシームレスな統合などの機能を備えた共同環境を提供し、GoogleドキュメントでGoogleシートを呼び出し、Googleワークスペースを最大限に活用できます。主要なデータサイエンスライブラリであるPandasを使用して、プログラムでExcelファイルを簡単に読み込んで動作させることができますが、Googleシートで同様のセットアップを複製できます。 SaaSの提供として、Googleシートデータへのアクセスには、Java、JavaScript、Node.js、PHP、Ruby、 Python 、Google独自のAppScriptなどのさまざまなプログラミング言語をサポートするAPIを使用する必要があります。この記事では、Pythonを使用してGoogleシートデータをPandasデータフレームに効率的にロードし、迅速なデータ変換と分析を可能にすることに焦点を当てています。変更が完了すると、GSPREAD Pythonライブラリを使用して、更新されたデータをGoogleシートに戻し、Google Sheets APIと対話するための便利なインターフェイスを提供できます。

この記事は、データサイエンスブログソンの一部として公開されました

目次

  • Google Cloudプロジェクトの設定
  • GSPREADを理解する
  • 接続と開くスプレッドシートの確立
  • Googleシートの作成と管理
  • ワークシートの管理
  • 細胞特性
  • 新しい行と列の追加
  • セルと範囲の値を取得します
  • セルと範囲の更新
  • 行と列の削除
  • セルの検索
  • セルのフォーマット
  • セルとワークシートのクリア範囲
  • Google APIの制限
  • よくある質問

Google Cloudプロジェクトの設定

前述のように、GoogleシートはSaaSの提供であるため、自動化のための追加の手順を準備する必要があります。人気のあるクラウドコンピューティングプラットフォームであるGoogle Cloud Platform(GCP)は、カスタムプロジェクトの展開とともにGoogle製品と対話するのに役立つさまざまなサービスを提供しています。

概して、Googleシートの自動化を始めるには、これらの3つのステップに従う必要があります。

Googleクラウドプロジェクトの作成と構成

https://console.cloud.google.com/にアクセスして、無料アカウントにサインアップしてください。左上から次に、プロジェクト選択メニューをクリックして、新しいプロジェクトを選択します。プロジェクト名を提供し、組織を「組織なし」として残し、Createをヒットし、GCPプロジェクトが設定されています。

Pythonを使用したGoogleシートオートメーション| Analytics Vidhya

API資格情報の生成と保護

GoogleシートとGoogleドライブAPIを有効にし、サービスアカウントを作成する必要があります。この特別なタイプのアカウントを使用すると、人間の相互作用を必要とせずにGoogleクラウドリソースにアクセスして管理できます。 GoogleシートAPIを有効にするには、上部の検索バーでシートを検索し、「Google Sheets API」を選択します。 [許可]をクリックすると、API詳細ページにリダイレクトされます。ここで、「資格情報の作成」をクリックすると、資格情報の作成フォームが開きます。

Pythonを使用したGoogleシートオートメーション| Analytics Vidhya

選択ボックスから[アプリケーションデータ]を選択し、[次へ]をクリックします。次の画面で、サービスアカウントに意味のある名前を提供します。後の手順で使用します。次に、「編集者」の役割を選択します。最後に、下部で[完了]をクリックします。

Pythonを使用したGoogleシートオートメーション| Analytics Vidhya

同様に、GoogleドライブAPIを有効にすることができます。このAPIの別のサービスアカウントを作成する必要はないことに注意してください。既存のサービスアカウントは、両方のAPIにアクセスできます。次に、PythonスクリプトがGoogleシートにアクセスするために消費する資格情報JSONをダウンロードする必要があります。新しく生成されたサービスアカウントのメールをクリックし、[キー]タブに切り替え、[キーの追加]ボタンをクリックして[新しいキーオプションの作成]を選択し、JSONを選択してから作成します。

Pythonを使用したGoogleシートオートメーション| Analytics Vidhya

Googleシートへのアクセスを許可します

Pythonスクリプトは、生成された資格情報を使用してGoogleシートにアクセスします。ただし、スクリプトが使用するファイルへのアクセスを手動で付与する必要があります。これを行うには、サービスアカウントに生成された電子メール(サービスアカウントの詳細タブにあります)をコピーし、そのメールをエディターとして目的のファイルに追加します。

GSPREADを理解する

GSPREADは、Googleシート用のPython APIラッパーです。 Google Sheetsapiが別々のクラスとアクセス方法で提供する多くの機能をカプセル化します。 Sheetsapiとの相互作用が簡単に移動し、すぐに拾うことができます。

ローカル環境にライブラリをセットアップするには、他のPythonパッケージと同様に、シンプルなPIPコマンドを使用できます。依存関係の競合を回避するために、ベストプラクティスとして別の環境にライブラリをインストールします。

 PIPインストールGSPREAD
ログイン後にコピー

セル参照に関する簡単なメモ

Googleシートのセルアドレスは、2つの一般的な表記を使用して参照できます。

  • A1表記:このセルの参照は、シート名、行番号、列文字で構成されています。この参照は、シート名に言及せずに機能し、単一のセル、さまざまなセル、または列全体を参照できます。
  • 名前付き範囲:これは、Googleシート全体で簡単に識別され、簡素化された参照のためのカスタム名を持つセルの定義された範囲です。

接続と開くスプレッドシートの確立

必要なアクセスとライブラリをセットアップしたので、コードをテストしましょう。サービスアカウントのメールを含むスプレッドシートに、最初のセルにランダムなテキストを入力します。 Pythonスクリプトを使用してこの値を取得しようとします。

Pythonを使用したGoogleシートオートメーション| Analytics Vidhya

JSONモジュールを使用して資格情報をロードし、GSPREADの「service_account_from_dict()」関数に渡します。これにより、Google Sheetsクライアントオブジェクトが返され、このオブジェクトを使用して「Open()」関数を使用してGoogleシートを開くことができます。以下のコードを参照してください。

 gspreadをインポートします
JSONをインポートします

f:open( 'creds.json')として:
    資格情報= json.load(f)

gc = gspread.service_account_from_dict(資格情報)

sh = gc.open( "articleledemo")
ログイン後にコピー

タイトル名の代わりにGoogleシートを開く方法は2つあります。これらの代替方法は、Google Workspaceのようにタイトル名の依存関係を排除します。複数のファイルに同じタイトルを持つことができます。スプレッドシートの場合、同じタイトルを持つ2つのファイルがある場合、最新のファイルにAPIがアクセスします。ファイルURLまたはスプレッドシートの一意のIDを使用してスプレッドシートにアクセスできます。次のリンク「https://docs.google.com/spreadsheets/d//edit」です。以下は、URLまたは一意のIDを介してスプレッドシートにアクセスするコードです。

 ##一意のID経由のアクセス
sh = gc.open_by_key( "1r97twcm0fffnssrh_0fjddg-hcqf5plhbhrxu9ptv_q")


## url経由のアクセス
sh = gc.open_by_url( "https://docs.google.com/spreadsheets/d/1r97twcm0fffnssrh_0fjddg-hcqf5plhbhrxu9ptv_q/edit?gid = 0#gid = 0")
ログイン後にコピー

次のコードでは、シートに入力された値を読み取ります。動作するコードについては、記事の後半のセクションで説明します。

 print(sh.sheet1.acell( 'a1')。値)
ログイン後にコピー

これにより、シート内のA1セルに存在する値が返されます。これは、「GSHEET:これが最初のセル」です。現在、私たちは皆、GSPREADライブラリに深く掘り下げ、利用可能なすべてのオプションを探索する予定です。

注: shvariableはスプレッドシートオブジェクトを保持し、ガイド全体に参照されます

Googleシートの作成と管理

スプレッドシートがプログラムで作成される多くのユースケースがある可能性があります。ユーザーにデータと洞察を公開するソリューションを構築することです。これに加えて、彼らはこのシートをユーザーと直接共有したいと思うかもしれません。

  • 新しいスプレッドシートを作成するには、GSPREADクライアントのcreate()関数を使用します。新しいスプレッドシートのタイトルをパラメーターとして渡し、場所を指定する場合は、Folder_IDパラメーターを使用します。
  • 作成された新しいスプレッドシートは、サービスアカウントユーザーがのみアクセスできます。これは、サービスアカウントを作成したユーザーにもスプレッドシートが表示されないことを意味します。この目的のために、スプレッドシートオブジェクトの「share()」関数を使用できます。この関数には、3つの必須パラメーターが必要です:「email_address」(電子メールアドレス)、「perm_type」(許可タイプ)、および「役割」。許可タイプは、ユーザー、グループ、ドメイン、または誰でも次の値をとることができます。ほとんどのユースケースでは、ユーザー値が機能します。 Perm_typeには、「読者」、「コメンター」、「ライター」、「FileorGanizer」、「オーガナイザー」、および「所有者」の容認可能な値が固定されています。追加のオプションのパラメーターもいくつかあり、詳細なレベルの情報を提供します。
    • 「Notify」:ユーザーが共有されたファイルの通知を取得するかどうかを制御するためのブール値。
    • 「email_message」:通知メールとともに送信されるメッセージの文字列値。
 sh = gc.create( 'articledemotest')##新しいスプレッドシートの作成
sh.share(email_address = '[email protected]'、perm_type = 'user'、role = 'writer'、notify = true、email_message = "これはテストファイルです")
ログイン後にコピー

Pythonを使用したGoogleシートオートメーション| Analytics Vidhya

ワークシートの管理

すべてのスプレッドシートは、ワークシートのコレクションです。これとの簡単な類推は、本に複数のページがある方法です。 GSPREADを使用して、ユーザーは新しいワークシートにアクセス、変更、削除、または作成できます。これらの各機能を見てみましょう。

ワークシートの選択

スプレッドシートオブジェクトのワークシートには、ワークシートオブジェクトの次の方法を使用してアクセスできます。

  • インデックスによるアクセス: 「get_worksheet()」関数は、アクセスする必要があるワークシートのインデックスを取り入れます。
  • タイトル別のアクセス: 「worksheet()」関数は、ワークシートのタイトルを取り入れます。ワークシートのタイトルは本質的にユニークであるため、2つのワークシートが同じタイトルを持つことはできないことに注意してください。
  • ドット表記によるアクセスショートカット:ドット表記ショートカットでは、タイトル、インデックス、またはIDを提供せずに、スプレッドシートの最初のワークシートにアクセスできます。
  • すべてのアクセス: 「ワークシート()」関数は、スプレッドシートのすべてのワークシートを返します。 GSPREADワークシートオブジェクトとしてそれらを返します。 「タイトル」と「ID」は、このクラスのいくつかの重要なプロパティであり、目的のワークシートにかなりの方法でアクセスするのに役立ちます。
  • IDによるアクセス:自動化スクリプトの開発中、タイトルの代わりにワークシートIDを扱っているユースケースがいくつかある可能性があります。このようなシナリオでは、「get_worksheet_by_id()」関数を使用できます。

リストされているすべてのメソッドのサンプルコードは次のとおりです。

印刷(sh.get_worksheet(0))
print(sh.worksheet( "articleworksheet1"))
print(sh.sheet1)
印刷(sh.get_worksheet_by_id(0))

print( "すべてのシートを取得するようになりました...")

##すべてのワークシートを返します
sh.worksheets()のwsの場合:
    印刷(WS)
ログイン後にコピー

これらの印刷ステートメントはすべて、ワークシートオブジェクトを返します

Pythonを使用したGoogleシートオートメーション| Analytics Vidhya

新しいワークシートを作成します

スプレッドシート内の既存のワークシートとは別に、同じスプレッドシートに新しいワークシートをプログラム的に作成できます。このアプローチは、既存のワークシートからデータを処理し、結果を別のワークシートに公開する場合に役立ちます。

新しいワークシートを作成するには、ワークシートオブジェクトの「add_worksheet()」関数を使用する必要があります。次のパラメーターが必要です。

  • タイトル:ワークシートのタイトル
  • 行、列、インデックス(オプション):新しく作成されたワークシートの行と列の数を定義する必要があります。 「インデックス」パラメーターはオプションであり、ワークシートの順序を制御します。

以下のコードは、100行と20列のワークシートを作成し、ワークシートを2番目の位置に配置します。

 sh.add_worksheet( 'articleworksheet1.5'、rows = 100、cols = 20、index = 1)
ログイン後にコピー

そして、それはそれを2番目の位置に配置しました(インデックス1)

Pythonを使用したGoogleシートオートメーション| Analytics Vidhya

ワークシートの改名

新しいタイトルをパラメーターとして受け入れるワークシートオブジェクトのupdate_title()関数を使用して、ワークシートタイトルの名前を変更できます。

 print(sh.worksheet( "articleworksheet3")。update_title( "articleworksheet2.5"))
ログイン後にコピー

ワークシートの削除

ワークシートオブジェクトの次の関数を使用して、スプレッドシートからワークシートを削除できます。

  • ワークシートオブジェクトを使用してワークシートを削除します。 「del_worksheet()」関数は、ワークシートオブジェクトをパラメーターとして使用し、スプレッドシートからワークシートを削除します。
  • ワークシートIDを使用してワークシートを削除します: 「del_worksheet_by_id()」関数は、ワークシートIDをワークシートを削除するための入力として取得します。

使用する機能の選択は、スクリプトが作成されるユースケースに依存します。以下は、両方の関数の使用を示すコードサンプルです。

 sh.del_worksheet(sh.worksheet( "articleworksheet2.5"))
sh.del_worksheet_by_id( '602396579')
ログイン後にコピー

細胞特性

私たちはゆっくりと上から下に狭まり、ワークシートのセルの最小(そして最も重要な)ユニットに到達しています。セルは、行と列の交差点です。 GSPREADライブラリの場合、次のプロパティを保持しています。

  • 行:セルの行番号
  • COL:セルの列番号
  • 値:セルの値
  • アドレス: A1表記のセルのアドレス

以下のサンプルコードは、セルのすべてのプロパティにアクセスします。検査用の特定のセルは、ワークシートのセル関数を使用して返されます。

 samplecell = sh.worksheet( "articleworksheet1")。セル(row = 1、col = 1)
print( 'row:{} \ ncolumn:{} \ nvalue:{} \ naddress:{}'。形式(samplecell.row、samplecell.col、samplecell.value、samplecell.address)))
ログイン後にコピー

Pythonを使用したGoogleシートオートメーション| Analytics Vidhya

ライブラリの高次機能を扱うと、これらのすべてのアクセサーが作用します。

新しい行と列の追加

既存のサンプルワークシートに新しい行と列を追加して、このガイドの後半のセクションに取り組むデータを用意してみましょう。操作としての挿入は、GSPREADライブラリによって2つの方法でサポートされています。

特定の位置での挿入

ワークシートオブジェクトのINSERT_ROW()、INSERT_ROWS()、およびINSERT_COLS()関数を使用して、特定の位置に行または列を挿入できます。これらの機能により、ワークシートの特定の場所に行または列を追加できます。関数の詳細は以下のとおりです。

  • INSERT_ROW:関数には、挿入する値のリストとして「値」パラメーターが必要です。リスト内の値の順序は、挿入された行の順序を決定します。デフォルトの「インデックス」パラメーターは、行挿入の位置を指定します。 「value_input_option」や「enternit_from_before」などのオプションのパラメーターは、関数が入力データと行をどのように解釈するか、およびユーザーがUIでタイピングしているかのようにデータを直接プッシュするか、解析する必要があるかどうかを制御します。
  • INSERT_ROWS:複数の行を挿入するための「値」パラメーターのリストのリストを取得します。各リストは単一の行として機能します。内部的には、これはGSPREADを介して行がワークシートに挿入される方法の実際の実装です。 「insert_row()」関数は「insert_rows()」関数を呼び出すため、1つのパラメーターを除く「insert_rows()」に「insert_row()」に記載されているすべてのパラメーターが当てはまります。 INSERT_ROW()関数では、インデックスパラメーターを使用してオフセットを決定し、insert_Rows()関数では、行パラメーターで指定します。
  • INSERT_COLS:この関数は、「row」から「col」へのオフセットのパラメーター名が変更された「insert_rows()」関数のレプリカです。オプションのパラメーター機能の残りの部分は同じままです。

テーブル範囲の後の挿入

この挿入は、行にのみ適用されます。特定のテーブル範囲の後に行を挿入することができます。ここでは、位置が不明です。繰り返しますが、挿入は単一またはマルチローウの方法で実行できます。

  • append_row:「値」パラメーターを介して行の値として行の値を取得します。 「table_range」パラメーターは、行の挿入が発生する後、テーブル範囲を定義するのに役立ちます。範囲はA1表記で与えられます。
  • append_rows:同様に「insert_rows()」、「append_rows()」は、テーブル範囲後の行挿入の実際の実装です。両方の関数のすべてのパラメーターは、「append_rows()」が「値」パラメーターのリストのリストを取得するという違いと同じままです。

これがサンプルコードです:

  • 列の行を追加します:a、b、c、およびd
  • これらの列の下に4行を追加します
sampleworksheet.insert_row(
    ['a'、 'b'、 'c'、 'd']
))
sampleworksheet.insert_rows(
    [
        ['kg'、54、23、12]、
        ['og'、34、12、34]、
        ['me'、23、45、90]、
        ['ye'、65、12、54]
    ]、row = 2
))
ログイン後にコピー

Pythonを使用したGoogleシートオートメーション| Analytics Vidhya

それでは、これに加えて次の手順を実行しましょう。

  • このテーブル範囲で続行するために2行を追加します
  • 別の列を追加しますe
 sampleworksheet.append_rows(
    [
        ['Sn'、67、87、45]、
        ['ar'、56、23、65]
    ]、、
    table_range = "a1:d5"
))
sampleworksheet.insert_cols(
    [
        ['e'、56、34、65、34、76、45]
    ]、、
    col = 5
))
ログイン後にコピー

Pythonを使用したGoogleシートオートメーション| Analytics Vidhya

注: sampleworksheet変数はワークシートオブジェクトを保持し、ガイド全体で参照されます。

セルと範囲の値を取得します

最後のセクションでは、さまざまな挿入操作を使用してプログラムでデータを準備しました。これで、さまざまな読み取り関数を使用して挿入されたデータを取得できます。セルを取得する方法を確認し、さまざまなセルとワークシート全体から値を取得するために移動します。

単一のセルを取得します

ワークシートで最も基本的な読み取り操作には、前のセクションで説明されているように、値またはその他のセルプロパティを取得することが含まれます。単一のセルを取得するには、2つの機能があります。

  • ACELL:これにより、A1表記のセルアドレスが取得され、セルオブジェクトが返されます。
  • セル:これにより、セル座標は(行、列)の順序で取得されます。

これらの関数は両方ともセルオブジェクトを返し、これらのオブジェクトから値を取得する方法をすでに見ています。 Acell関数は、GoogleシートAPIとの接続を確立したセクションで使用されました。

 print(sampleworksheet.acell( 'a1')。行)
print(sampleworksheet.cell(1、1).value)
ログイン後にコピー

ワークシートまたは範囲のすべてのセルを取得します

  • ワークシートオブジェクトの「get_all_cells()」関数を使用して、セルオブジェクトのリストにワークシートのすべてのセルを取得できます。この関数にはパラメーターがなく、ワークシートオブジェクトで直接呼び出すことができます。
  • 特定の範囲のセルオブジェクトを取得するには、ワークシートオブジェクトの範囲()関数を使用します。この関数は、A1表記、数値境界、または名前の範囲など、さまざまな入力フォームを受け入れます。入力なしで使用すると、ワークシート内のすべてのセルを1回のAPI呼び出しで返します。細胞特性を含むユースケースの場合、この関数は、目的の細胞を除外し、さらなるアクションを実行するのに役立ちます。
 print(sampleworksheet.get_all_cells())
print(sampleworksheet.range( 'b4:e5'))
ログイン後にコピー

セルの範囲の値を取得します

ユーザーは通常、同じワークシートに複数のミニチュアテーブルを作成して、より良いアクセシビリティを実現します。そのような場合、これらのテーブル範囲の正確なアドレスまでフェッチ範囲を改良する必要があります。このようなテーブル範囲を取得するには、ワークシートオブジェクトの次の2つの関数を使用できます。

  • get: 「get()」関数は、A1表記または名前の範囲でテーブル範囲を取り、値のリストのリストを返します。
  • batch_get: 「get()」関数は1つの範囲のみを取ることができますが、複数の範囲を扱っている場合は、batch_getを使用できます。この関数は1つのAPI呼び出しを行い、コストを削減します。
 print( 'get range:{}'。形式(sampleworksheet.get( "a1:d4")))))
print( 'batch get range:{}'。形式(sampleworksheet.batch_get([))
    「A1:D4」、
    「B4:E3」
])))
ログイン後にコピー

Pythonを使用したGoogleシートオートメーション| Analytics Vidhya

行または列からすべての値を取得します

ワークシートオブジェクトの「row_values()」および「col_values()」関数を使用して、行または列のすべての値を取得できます。両方の関数は、行または列の位置(1から番号)を取得し、リスト内の値を返します。

 print(sampleworksheet.row_values(1))
print(sampleworksheet.col_values(4))
ログイン後にコピー

Pythonを使用したGoogleシートオートメーション| Analytics Vidhya

ワークシート値全体を取得します

ワークシート全体を取得する最良のユースケースの1つは、このデータをPandasデータフレームに直接ロードし、要件に従って後処理または分析を実行することです。データ全体は、ワークシートオブジェクトの次の関数を使用して返すことができます。

  • リストのリスト: 「get_all_values()」関数は、すべての行をリストとして返し、すべての行リストを1つのリストに表示します。この関数は「get_values()」関数のエイリアスですが、興味深いことに、「get_values()」関数は「get()」関数を使用して実装されます。入力なしの「get()」関数は、リストのリストを返します。したがって、3つの関数はすべて同じです。
  • 辞書のリスト: 「get_all_records()」関数は辞書のリストを返します。各辞書は、キーが最初の列値であり、次の列値として値であるキー価値マッピングです。すべての行に辞書があります。デフォルトでは、最初の行がキーであると想定していますが、「ヘッダー」パラメーターを使用してキーとして異なる行を認識させることができます。空のセルや予想されるヘッダーの処理に役立ついくつかの追加のパラメーターもあります。

両方の機能の出力をPandas DataFrame関数に直接渡して、Pandasデータフレームとしてワークシートテーブルを取得できます。

 PDとしてパンダをインポートします
print(pd.dataframe(sampleworksheet.get_all_records())))
print(pd.dataframe(sampleworksheet.get_all_values())))
ログイン後にコピー

Pythonを使用したGoogleシートオートメーション| Analytics Vidhya

セルと範囲の更新

スプレッドシートの既存のデータを更新することは、GSPREADライブラリ関数を使用して簡単に実行できる最も重要な関数です。スプレッドシートのセルを更新し、単一のセルの更新を範囲の複数のセルに更新し、単一のAPI呼び出しで複数の範囲に更新する方法があります。

単一のセルの更新

ワークシートの単一のセルは、ワークシートオブジェクトの次の機能を使用して更新できます。

  • update_acell:この関数は、A1表記のセルアドレスと更新される値の2つのパラメーターを取得します
  • update_cell:この関数は、行の順序でセルの座標と更新の値を取ります
  • 更新:この関数には複数のセルを更新するための範囲が大きくなりますが、単一のセルの更新にも使用できます。入力パラメーターの順序は、上記の2つの関数とは異なります。 「update()」関数は、最初の値としてリストのリストを採用し、次にセルアドレスを採用します。
 print(sampleworksheet.update_acell( 'a2'、 'kaustubh'))
print(sampleworksheet.update_acell( 'a3'、 'oggy'))
print(sampleworksheet.update(['hello']]、 'a4'))
ログイン後にコピー

Pythonを使用したGoogleシートオートメーション| Analytics Vidhya

さまざまなセルの更新

ワークシートオブジェクトから次の2つの機能を使用して、ワークシートのさまざまなセルを更新できます。

  • update_cells:この関数は、「range()」関数と組み合わせて最適に機能します。 「update_cells()」関数は、セルのリストとして入力されます。このセルのリストは、範囲関数から返され、バリュープロパティにアクセスするセルオブジェクトをループすることにより、値を変更することができます。
  • 更新:以前にシングルセルアップデートで見られたように、この関数を使用して、名前付き範囲またはA1-ノートの範囲を更新できます。
 rangeofcells = sampleworksheet.range( 'b2:b7')
rangeofcellsのセルの場合:
    newValue = int(cell.Value)10
    cell.value = newValue
print(sampleworksheet.update_cells(rangeofcells))
ログイン後にコピー

上記のコードは、さまざまなセルを取得し、値に10を追加し、1回のAPI呼び出しでそれらを更新します。

複数の範囲のセルを更新します

上記のセクションでは、単一のAPI呼び出しで複数のセルを範囲内で更新することができました。この動作は、複数の範囲にも拡張できます。つまり、1回の呼び出しで複数のセルグループを更新できることを意味します。 「batch_update()」関数は、範囲と値としてキーを持つ辞書のリストを取得します。範囲のキー値は、A1表記範囲または名前付き範囲と、値のリストのリストとしての値キー値である必要があります。

 range1 = 'c2:c7'
range2 = 'e2:e7'
bothrangevalues = sampleworksheet.batch_get([[
    範囲1、
    範囲2
]))
range1values、range2values = bothrangevalues
rience1updatedValues = [[int(x [0])10] range1valuesのxの場合]
range2updatedValues = [[int(x [0])20] range2valuesのxの場合]
print(sampleworksheet.batch_update([)
    {
        「範囲」:range1、
        「値」:range1UpdatedValues
    }、

    {
        「範囲」:範囲2、
        「値」:range2UpdatedValues
    }
])))
ログイン後にコピー

上記のコードは、「batch_get()」関数を使用して2つの範囲を取得し、局所的に値を更新し、「batch_update()」関数を使用して更新された値をGoogleシートに押し戻します。このアップデートの出力は次のようになります:

Pythonを使用したGoogleシートオートメーション| Analytics Vidhya

行と列の削除

この時点まで、ワークシートのデータを挿入、読み取り、更新しました。削除操作を実行して、ワークシートから冗長または不要なデータを削除できます。 「delete_rows()」と「delete_colums()」関数は、「start_index」を削除する必要があります。 「end_index」が指定されている場合、開始と終了のインデックス範囲のすべての列を削除します。

 print(sampleworksheet.delete_columns(4))
print(sampleworksheet.delete_rows(6))
ログイン後にコピー

セルの検索

GoogleシートAPIを使用すると、文字列または正規表現を一致させてセルを検索できます。症例に敏感またはケースに依存しない検索を実行し、必要に応じて検索を特定の行または列に絞り込むことができます。これらの2つのワークシート関数を使用して、一致するセルを見つけます。

  • find: 「find()」関数は、試合の最初の発生を返します。これにより、検索文字列または正規表現、「in_row」または「in_column」パラメーターが検索と「case_sensitive」フラグを絞り込み、検索タイプを制御します。 「in」パラメーターは行または列の位置を取ります(インデックス1)
  • findall: 「findall()」は、検索のすべての一致を返す「find()」関数の高度な段階です。
 Reをインポートします
print(sampleworksheet.find('64 '、in_column = 2))
searchre = re.compile(r '(a | a)')
print(sampleworksheet.findall(searchre))
ログイン後にコピー

Pythonを使用したGoogleシートオートメーション| Analytics Vidhya

セルのフォーマット

Excelでは、テキストのハイライト、フォーマット、境界、アライメント、多数の機能など、さまざまな方法でワークシートをフォーマットできます。 Googleシートには、セルのさまざまなフォーマットオプションも提供しています。フィールドのリスト全体は、Googleシートセルのドキュメントで入手できます。

GSPREADワークシートオブジェクトのFormat()関数を使用して、フォーマットを適用するセルまたは範囲を指定できます。すべてのフォーマットキーフィールドとその値を含むJSON辞書として形式を提供します。

以下のコードは、テーブルのすべてのセルに境界線を適用します。

 borderformatting = {
    「スタイル」:「ソリッド」、
    「colorStyle」:{"rgbcolor":{"red":0、 "緑":0、blue ":0、" alpha ":1}}、
}

印刷(
    sampleworksheet.format(
        「A1:D6」、
        format = {
            「国境」:{
                「トップ」:国境警備隊、
                「ボトム」:国境警備隊、
                「左」:境界線形、
                「正しい」:国境警備隊、
            }、
        }、
    ))
))
ログイン後にコピー

また、バッチフォーマットを適用して、複数の範囲を同時にフォーマットすることもできます。これにより、新しい変更ごとに異なる形式の呼び出しを書くのに大幅な時間を節約できます。 「batch_format()」関数は、2つの重要なキーを含む辞書のリストを取得します。最初のキーは、セルのスコープを定義する範囲キーと、フォーマット辞書を含むフォーマットキーです。

「batch_format()」機能を使用して、サンプルテーブルで以下を実行しましょう。

  • テーブルのすべてのセルに境界を塗ります。
  • 最初の行のテキストを大胆に、それらが私たちのテーブルの列であることを示します。
  • 中央のすべてのデータを調整します。
  • 列に明るい青色の色を追加します(最初の行)。
 borderformatting = {
    「スタイル」:「ソリッド」、
    「colorStyle」:{"rgbcolor":{"red":0、 "緑":0、blue ":0、" alpha ":1}}、
}
フォーマット= [
    {
        「範囲」:「a1:d6」、
        「フォーマット」:{
            「国境」:{
                「トップ」:国境警備隊、
                「ボトム」:国境警備隊、
                「左」:境界線形、
                「正しい」:国境警備隊、
            }、
            「Horizo​​ntalAlignment」:「Center」、
        }、
    }、
    {
        「範囲」:「a1:d1」、
        「フォーマット」:{
            「TextFormat」:{
                「太字」:本当、
            }、
            「BackgroundColorStyle」:{
                「rgbcolor」:{"red":0.8、 "green":0.8、 "blue":1、 "alpha":0.8}
            }、
        }、
    }、
]

print(sampleworksheet.batch_format(formats))
ログイン後にコピー

そして、これが私たちのテーブルの最終的な状態です。

Pythonを使用したGoogleシートオートメーション| Analytics Vidhya

セルとワークシートのクリア範囲

運用を実行する前に範囲をクリアしたい可能性があります。セルの範囲をクリアするために、ワークシートオブジェクトの「batch_clear()」関数を使用します。これには、クリアする必要がある範囲のリストが表示されます。サンプルテーブルから列Cをクリアしましょう。

 print(sampleworksheet.batch_clear(["c1:c6"]))
ログイン後にコピー

Pythonを使用したGoogleシートオートメーション| Analytics Vidhya

注:クリア関数は、適用されたフォーマットではなく、値をクリアします。

ワークシート全体のワークシートを使用して、ワークシートオブジェクトの「クリア()」関数を使用してクリアできます。

 print(sampleworksheet.clear())
ログイン後にコピー

Pythonを使用してGoogleシートを自動化する方法についてのこの記事をチェックアウト

Google APIの制限

GSPREADライブラリを使用して、Googleシートで多くの操作を行っています。このライブラリは、ユーザーパスデータを許容できる形式に準備し、シートに関連付けられたGoogleプロジェクトにAPI呼び出しを作成するラッパーです。開発者が基礎となるAPI呼び出し、ペイロード、および回答を理解する必要がないように機能します。開発者は、抽象化された関数とのみ対話します。

  • APIクォータの消費の理解:開発者は、特に生産および重要なタスクのために、API呼び出しがクォータを消費する方法を理解する必要があります。
  • 無料で制限された使用法:Google Sheets APIは無料ですが、作成できるAPI呼び出しの数に制限があります。
  • 共通エラー - 429(「リクエストが多すぎる」) :APIコール制限を超えるため、多くのユーザーが429エラーに遭遇します。
  • クォータの制限例:現在のクォータは、プロジェクトごとに1分あたり300のリクエストを許可します。
  • クォータを超える:スクリプトが300を超えるリクエストを送信する場合、追加のリクエストは処理されません。
  • 指数バックオフソリューション:ランダムな待機時間を使用する指数バックオフのような再試行メカニズムは、これらの制限を管理するのに役立ちます。

結論

このガイドでは、Google Sheets UIで実行されるすべての操作を実行するためにGoogleサービスアカウントを作成しました。データの追加、更新、削除など、多くの機能を調査しました。また、Pythonを使用してシートとGoogleシートの自動化のフォーマット方法についても検討しました。

Google Sheets APIは、セルのマージ、保護された範囲の作成、セルの隠し、メモの追加、コピー範囲、さらにはすべての操作をプログラム的に追加するなど、より多くの機能を提供します。 GSPREADライブラリのドキュメントにはこれらの説明がありませんが、Google Sheetsの公式ドキュメントを検討し、GSPREADドキュメントのAPIリファレンスセクションを確認することもできます。

キーテイクアウト

  • Google Sheets Automationには、Google Cloudプロジェクトをセットアップする必要がありますが、これには費用がかかりません。ただし、コードを最適化しない場合は、クォータを使い果たし、コードの後半でエラーにつながる可能性があります。可能な限りバッチ関数を使用することを目指します。
  • Google Sheets APIを使用して達成できることには多くの可能性があり、GSPREADライブラリは出発点に過ぎません。ライブラリに欠落している機能を実装するために、公式の文書を検討する必要があります(そしておそらく貢献するかもしれません)
  • Googleシートの自動化セットアップを使用して、マスターレコードを維持するソーシングパイプラインを構築し、OLAPデータベースのようなより高度なデータベースにプッシュできます。これらのデータベースをTableauなどのBIソフトウェアに接続して、エンドツーエンドプロジェクトを完了します。
  • Googleシートの自動化は、データを自動的に更新、インポート、または整理するワークフローを設定し、効率を大幅に改善するワークフローを設定することにより、手動データ入力を排除するのに役立ちます。
  • Googleシートの自動化を使用して、レポートの送信、計算の実行、セルの更新などの繰り返しのタスクをスケジュールして、繰り返し手動アクションの必要性を減らすことができます。

よくある質問

Q1。 「429:あまりにも多くのリクエスト」エラーを回避するために何ができますか?

A.しばらくの間、再びリクエストを行おうとする再試行メカニズムを実装する必要があります。そのような例の1つは、指数バックオフアルゴリズムです

Q2.グーグルシートで自動化を行うことはできますか?

A.はい、マクロGoogleアプリスクリプトZapierMake(以前のIntegromat)などのサードパーティツールなどの組み込み機能を使用して、Googleシートでタスクを自動化できます。これらを使用すると、データ入力、フォーマット、計算などの繰り返しタスクを自動化できます。

Q3。 Googleには自動化ツールがありますか?

A.はい、Googleは、Google Workspaceアプリ(シート、ドキュメント、Gmailなど)全体でタスクを自動化するためのJavaScriptベースのプラットフォームであるGoogle Apps Scriptを提供しています。 Additionally, tools like Google Cloud Workflows and Zapier integrations can be used for broader automation across Google services.

Q4。 How can I set up Google Sheets automations to save time on repetitive tasks?

A. You can set up Google Sheets automations using built-in tools like Macros and Google Apps Script. Macros allow you to record actions and replay them, while Google Apps Script lets you create custom automations using JavaScript. These automations can streamline repetitive tasks such as data entry, formatting, or running specific functions automatically in Google Sheets.

Q5。 What are some popular Google Sheets automations for data analysis?

A. Popular Google Sheets automations for data analysis include automated data import from external sources, scheduled reports using Google Apps Script, and conditional formatting to highlight trends. These automations help optimize the data analysis process, making Google Sheets a powerful tool for managing and interpreting large datasets efficiently.

以上がPythonを使用したGoogleシートオートメーション| Analytics Vidhyaの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

カーソルAIでバイブコーディングを試してみましたが、驚くべきことです! カーソルAIでバイブコーディングを試してみましたが、驚くべきことです! Mar 20, 2025 pm 03:34 PM

バイブコーディングは、無限のコード行の代わりに自然言語を使用してアプリケーションを作成できるようにすることにより、ソフトウェア開発の世界を再構築しています。 Andrej Karpathyのような先見の明に触発されて、この革新的なアプローチは開発を許可します

2025年2月のトップ5 Genai発売:GPT-4.5、Grok-3など! 2025年2月のトップ5 Genai発売:GPT-4.5、Grok-3など! Mar 22, 2025 am 10:58 AM

2025年2月は、生成AIにとってさらにゲームを変える月であり、最も期待されるモデルのアップグレードと画期的な新機能のいくつかをもたらしました。 Xai’s Grok 3とAnthropic's Claude 3.7 SonnetからOpenaiのGまで

オブジェクト検出にYolo V12を使用する方法は? オブジェクト検出にYolo V12を使用する方法は? Mar 22, 2025 am 11:07 AM

Yolo(あなたは一度だけ見ています)は、前のバージョンで各反復が改善され、主要なリアルタイムオブジェクト検出フレームワークでした。最新バージョンYolo V12は、精度を大幅に向上させる進歩を紹介します

ChatGpt 4 oは利用できますか? ChatGpt 4 oは利用できますか? Mar 28, 2025 pm 05:29 PM

CHATGPT 4は現在利用可能で広く使用されており、CHATGPT 3.5のような前任者と比較して、コンテキストを理解し、一貫した応答を生成することに大幅な改善を示しています。将来の開発には、よりパーソナライズされたインターが含まれる場合があります

クリエイティブプロジェクトのための最高のAIアートジェネレーター(無料&有料) クリエイティブプロジェクトのための最高のAIアートジェネレーター(無料&有料) Apr 02, 2025 pm 06:10 PM

この記事では、トップAIアートジェネレーターをレビューし、その機能、創造的なプロジェクトへの適合性、価値について説明します。 Midjourneyを専門家にとって最高の価値として強調し、高品質でカスタマイズ可能なアートにDall-E 2を推奨しています。

O1対GPT-4O:OpenAIの新しいモデルはGPT-4Oよりも優れていますか? O1対GPT-4O:OpenAIの新しいモデルはGPT-4Oよりも優れていますか? Mar 16, 2025 am 11:47 AM

OpenaiのO1:12日間の贈り物は、これまでで最も強力なモデルから始まります 12月の到着は、世界の一部の地域で雪片が世界的に減速し、雪片がもたらされますが、Openaiは始まったばかりです。 サム・アルトマンと彼のチームは12日間のギフトを立ち上げています

Google' s Gencast:Gencast Mini Demoを使用した天気予報 Google' s Gencast:Gencast Mini Demoを使用した天気予報 Mar 16, 2025 pm 01:46 PM

Google Deepmind's Gencast:天気予報のための革新的なAI 天気予報は、初歩的な観察から洗練されたAI駆動の予測に移行する劇的な変化を受けました。 Google DeepmindのGencast、グラウンドブレイク

chatgptよりも優れたAIはどれですか? chatgptよりも優れたAIはどれですか? Mar 18, 2025 pm 06:05 PM

この記事では、Lamda、Llama、GrokのようなChatGptを超えるAIモデルについて説明し、正確性、理解、業界への影響における利点を強調しています(159文字)

See all articles