準備
Google Cloudへログイン
API登録
「APIとサービスの有効化」をクリックする。
「google sheets api」を検索する。
「Google Sheets API」をクリックする。
APIを有効にする。
「OAuth同意画面」をクリックし、「作成」をクリックする。
アプリ情報を設定し、保存する。
「認証情報を作成」をクリックし、「OAuthクライアントID」をクリックする。
赤枠部分をクリックし、OAuthクライアント(JSON)をダウンロードする。
ライブラリ追加
Visual StudioでNugetパッケージマネージャを開き、「Google.Apis.Sheets.v4」をインストールする。
スプレッドシートからデータを取得する
OAuthクライアント
先程ダウンロードしたOAuthクライアント(JSON)をプロジェクトに追加する。
取得するデータ
サンプルコード
Program.cs
using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using Google.Apis.Sheets.v4;
using Google.Apis.Util.Store;
using Microsoft.Extensions.Configuration;
namespace SampleGoogleSheetApiConsoleApp
{
class Program
{
static void Main(string[] args)
{
var configuration = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build();
var settings = configuration.GetSection("ApiSettings");
UserCredential credential;
using (var stream = new FileStream(
"client_secret.json",
FileMode.Open,
FileAccess.Read))
{
string credPath = AppDomain.CurrentDomain.BaseDirectory;
credPath = Path.Combine(credPath, ".credentials/sheets.googleapis.com-dotnet-quickstart.json");
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
new[] { SheetsService.Scope.Spreadsheets },
"user",
CancellationToken.None,
new FileDataStore(credPath, true)
).Result;
}
var service = new SheetsService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = settings["ApplicationName"],
});
var request = service.Spreadsheets.Values.Get(settings["SpreadsheetId"], settings["Range"]);
var values = request.Execute().Values.ToList();
values.ForEach(value => { Console.WriteLine(value.FirstOrDefault()); });
}
}
}
appsettings.json
{
"ApiSettings": {
"ApplicationName": "xxxxx",
"SpreadsheetId": "xxxxx",
"Range": "Sheet1!A1:A47"
}
}