【GCPでの手続き】
GCPでの手続き
【スプレッドシートの準備】
スプレッドシートの準備
#【VisualStudioでのプロジェクト準備】
VisualStudioでのプロジェクト準備
①VisualStudioにて、Nugetパッケージマネージャーを開く
②パッケージをインストール
- パッケージマネージャーにて下記を入力してEnter
Install-Package Google.Apis.Sheets.v4
- 「Google.Apis.Sheets.v4 1.55.0.2371' が xxxxxxxx に正常にインストールされました」と表示されたらOK
③credentials.jsonの配置
-
GCP手続きの最後にダウンロードしたファイルを
credentials.json
にリネームする -
VisualStudioにて、ソリューションエクスプローラーを開く
④credentials.jsonのプロパティ設定
- プロパティを開き「
常にコピーする
」に変更
#【C#ソースコード_SpreadSheetからの読み取り編】
C#ソースコード_SpreadSheetからの読み取り編
①VisualStudioにて、ソースコードをコピペ
- 以下をコピペする
- ※ソースコードの冒頭の、
SpreadsheetId
に、先ほど作成したSpreadSheetのIDを入力する- URLの**「d/」と「/edit」**に挟まれた部分
https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxxxxxxx_xxxxxxxxxxxxx/edit#gid=0
- ※ソースコードの冒頭の、
using Google.Apis.Auth.OAuth2;
using Google.Apis.Sheets.v4;
using Google.Apis.Sheets.v4.Data;
using Google.Apis.Services;
using Google.Apis.Util.Store;
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
class Program
{
// https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxxxxxxx_xxxxxxxxxxxxx/edit#gid=0
const string SpreadsheetId = "xxxxxxxxxxxxxxxxxxxxx_xxxxxxxxxxxxx";
static void Main(string[] args)
{
// SheetsServiceを作成.
SheetsService service = GetSheetsService();
// 通信リクエストを作成.
var request = service.Spreadsheets.Values.Get(SpreadsheetId,"シート1!1:1000");
// 通信の同期実行. レスポンスを受け取る.
ValueRange response = request.Execute();
IList<IList<object>> values = response.Values;
for (int i = 0;i < values.Count;i++)
{
for (int k = 0;k < values[i].Count;k++)
{
Console.WriteLine($"({i},{k}) = " + values[i][k]);
}
}
Console.Read();
}
static SheetsService GetSheetsService()
{
var initializer = new BaseClientService.Initializer();
initializer.HttpClientInitializer = GetUserCredential();
initializer.ApplicationName = "test";
var sheetsService = new SheetsService(initializer);
return sheetsService;
}
static UserCredential GetUserCredential()
{
ClientSecrets clientSecrets;
using (var stream = new FileStream("credentials.json",FileMode.Open,FileAccess.Read))
{
clientSecrets = GoogleClientSecrets.FromStream(stream).Secrets;
}
// Googleの認証通信開始.
UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
clientSecrets,
new string[] { SheetsService.Scope.Spreadsheets },
"user",
CancellationToken.None,
new FileDataStore("token.json",true)).Result;
return credential;
}
}
②実行する
- 実行すると、Googleアカウントのログインが求められるので、GCPで使用したアカウントでログインする
- その後、警告が表示されるが、左下の詳細をクリック
- xxxに移動をクリック
③コンソールにて表示された事を確認!
#【C#ソースコード_SpreadSheetへの書き出し編】
C#ソースコード_SpreadSheetへの書き出し編
①Main関数の置き換え
- Main関数を以下に置き換える
static void Main(string[] args)
{
// 書き込む値.
var values = new List<IList<object>>()
{
// 1行目に書き込む値.
new List<object>
{
1,2,3,4,5,
},
// 2行目に書き込む値.
new List<object>
{
"6","7","8","9","10",
},
// 3行目に書き込む値.
new List<object>
{
DateTime.Now
}
};
// リクエストボディを作成.
var requestBody = new ValueRange() { Values = values };
// SheetsServiceを作成.
SheetsService service = GetSheetsService();
// 通信リクエストを作成.
var request = service.Spreadsheets.Values.Update(requestBody,SpreadsheetId,"シート1!1:1000");
request.ValueInputOption = SpreadsheetsResource.ValuesResource.UpdateRequest.ValueInputOptionEnum.USERENTERED;
// 通信実行.
var result = request.Execute();
}