[.NET]如何取得 Google Spreadsheet 中各個 sheet 資訊

環境: .NET, Google.Apis.Sheets.v4

本文介紹如何透過 Google.Apis.Sheets.v4 API 來取得 Spreadsheet 的 sheet 資訊

在取得 SheetsService 除了可以使用 OAuth 2.0 UserCredential 的方式,

如果只是要讀取資料,可以使用 API Key 的方式,

以下的 Code 就是透過 API Key 來取得某個 SpreadSheet 中每個 Sheet 的資訊,

var service = new SheetsService(new BaseClientService.Initializer
{
	ApplicationName = "你的application name",
	ApiKey = "api key",
});
	
// 例如 https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit
// 1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms 為 SpreadsheetId
var sheetsRequest = service.Spreadsheets.Get(SpreadsheetId);
var spreadsheet = sheetsRequest.Execute();
var sheetlist = spreadsheet.Sheets
                .OrderByDescending(s => s.Properties.Title);
foreach (var sheet in sheetlist)
{
	Console.WriteLine(sheet.Properties.Title);
}

註:程式要先安裝  Google.Apis.Sheets.v4 這個套件哦!

接下來,就是取得它的內容。


只要多轉入SheetName就可以了哦! Code,如下, 

var service = new SheetsService(new BaseClientService.Initializer
{
	ApplicationName = "你的application name",
	ApiKey = "api key",
});
	
// 例如 https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit
// 1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms 為 SpreadsheetId
// 用以下的 URL 
string spreadId = "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms";
var sheetsRequest = service.Spreadsheets.Get(spreadId);
var spreadsheet = sheetsRequest.Execute();
var sheetlist = spreadsheet.Sheets
	.OrderByDescending(s => s.Properties.Title);
foreach (var s in sheetlist)
{
	Console.WriteLine(s.Properties.Title);
} 
string sheetName = "Class Data";
var sheetRequest = service.Spreadsheets.Values.Get(spreadId, sheetName);
var sheet = sheetRequest.Execute();
//最後一欄 Column 都要給值,不然取回來的資料長度會不一致哦!
IList<IList<Object>> rows = sheet.Values;

參考資料

Google Sheets API

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^