C#でGoogleスプレッドシートのデータを取得するにはどうすればいいでしょうか? ここではGoogle Sheets API を使います。

Google APIを利用するには

Google API コンソールにアクセスします。

ログインしましょう。

ログインしたら[続行]を選択

認証情報に進みましょう。

次はなにもしないで下までスクロールして[キャンセル]を選択。

ここでは「認証情報を作成」をクリック

「OAuth クライアント ID」を選択

左のOAuth同意画面を選択

ここは「外部」を選択して「作成」をクリック。

入力必須の部分だけ入力します。

アプリ名 スプレッドシートの実験用
ユーザーサポートメール(自分のG-mailアドレス)

アプリのドメインは今回は実験なので空欄でかまいません。

デベロッパーの連絡先情報は自分のメールアドレスを入力してください。

入力したら「次へ」をクリック

スコープはそのままなにもしないで次へ
テストユーザーもそのままでかまいません。

すると概要が表示されます。

一番下までスクロールしてダッシュボードに戻ります。

上が表示されるのでテストユーザーとして自分自身を追加しておきます。そうしないと自分でテストをすることができません。

左の「認証情報」をクリック そのあと上の認証情報を作成をクリックして「OAuth クライアント ID」を選択
すると

ここはデスクトップアプリを選択します。名前をつけるのですが、ここは適当に「デスクトップ クライアント: 2021年0224作成」とします。最後に作成をクリックします。

すると「OAuth クライアントを作成しました」と表示されます。

[OK]をクリックしましょう。すると

右側にダウンロードをするボタンがあるのでファイルをダウンロードします。ファイル名は「client_secret.json」に変更しておきましょう。

ではアプリケーションを作成しましょう。

まずパッケージマネージャーでGoogle.Apis.Sheets.v4をインストールします。そして上記のダウンロードしてきた「client_secret.json」をプロジェクトに追加します。プロパティの「出力ディレクトリにコピー」は「常にコピーする」に変更しておいてください。

では

https://developers.google.com/sheets/api/quickstart/dotnet?hl=ja

にあるコードを少しだけ変えてコピペしましょう。WindowsFormsアプリケーションとして作り変えるだけです。取得したセルの情報はメッセージボックスで表示されます。

実行しようとするとログインを求められます。

テストなのでこのように表示されますが、Continueを選択。

許可を求められるので「許可」を選択。

「このページは閉じてよい」と書かれているので閉じます。

取得結果が表示されます。

これでスプレッドシートのデータをC#で取得することができました。

実行ファイルがあるフォルダ内にtoken.jsonというフォルダがつくられ、そのなかにGoogle.Apis.Auth.OAuth2.Responses.TokenResponse-userというファイルが生成されます。以降はログインの手続きなしでスプレッドシートのデータを取得できます。