Dies ist eine API, die zum größten Teil der Version 4 von Google's Sheets API entspricht. Wenn Sie also eine Dokumentation zur Verwendung dieser API möchten, müssen Sie stattdessen ihre API konsultieren und die C# -Bindungen verwenden. Es gibt auch eine kleinere Schicht mit hoher Ebene oben, die für Personen, die nur auf die Daten aus einem 2D -Array zugreifen müssen, nützlich ist.
Eine abstrakte SheetsSerializer -Klasse gibt es, damit Sie jeden JSON -Serializer verwenden können, den Sie möchten.
using UnityEngine ;
public class JSONSerializer : SheetsSerializer
{
public override T DeserializeObject < T > ( string data )
{
return JsonUtility . FromJson < T > ( data ) ;
}
public override string SerializeObject ( object data )
{
return JsonUtility . ToJson ( data ) ;
}
} using Newtonsoft . Json ;
public class JSONSerializer : SheetsSerializer
{
public override T DeserializeObject < T > ( string data )
{
return JsonConvert . DeserializeObject < T > ( data ) ;
}
public override string SerializeObject ( object data )
{
return JsonConvert . SerializeObject ( data ) ;
}
} Die Anforderungen an die Nutzung der Google Sheets -API besteht darin, die Tabellenkalkulelle und ein Zugangs -Token zu haben. Die Tabelle kann aus einer URL abgerufen werden. Sie müssen auch die SheetsSerializer.Serializer -Eigenschaft mit Ihrem eigenen Serializer -Objekt zur Verfügung stellen.
https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}
Das API -Token kann aus der Google API -Konsole erstellt werden, um weitere Informationen dazu bei diesem Artikel von Google zu besuchen
public async void Start ( )
{
SheetsSerializer . Serializer = new SheetsSerializer ( ) ; //TODO: Create your own custom serializer/deserializer
string spreadsheetId = "" ; //TODO: Get your own spreadsheetId
string key = "" ; //TODO: Get your own key token
Authorization authorization = await Authorization . Authorize ( key ) ;
Spreadsheet spreadsheet = await Spreadsheet . Get ( spreadsheetId , authorization ) ;
Debug . Log ( "URL: " + spreadsheet . URL ) ;
Debug . Log ( "Title: " + spreadsheet . Title ) ;
Sheet sheet = spreadsheet . Sheets [ 0 ] ;
Debug . Log ( "Rows: " + sheet . Rows ) ;
Debug . Log ( "Columns: " + sheet . Columns ) ;
Cell [ , ] data = sheet . Data ;
for ( int x = 0 ; x < sheet . Columns ; x ++ )
{
for ( int y = 0 ; y < sheet . Rows ; y ++ )
{
Debug . Log ( data [ x , y ] . Value ) ;
}
}
} Wenn Sie die API mit niedriger Ebene verwenden möchten, können Sie die GetRaw() -Methode anstelle von Get() verwenden. Die RAW -Methode -Alternative gibt ein SpreadsheetRaw aus, das mit der Google -API -Referenz identisch ist.
Wenn Sie sowohl mit der niedrigen als auch mit hoher Ebene arbeiten möchten, können Sie eine Tabelle aus der Tabelle mit niedriger Ebene erstellen, indem Sie es in den Konstruktor übergeben. Gleiches gilt für die Umwandlung eines Rohblatts in ein hochstufiges Blatt. Dies kann nicht umgekehrt und durch Design geschehen.
SheetsSerializer . Serializer = new SheetsSerializer ( ) ;
string key = "" ; //TODO: Get a key
Authorization authorization = await Authorization . Authorize ( key ) ;
SpreadsheetRaw raw = await SpreadsheetRaw . Get ( spreadsheetId , token , includeGridData ) ;
Spreadsheet spreadsheet = await Spreadsheet . Get ( spreadsheetId , token , serializer ) ;
//create a new spreadsheet from the raw data
Spreadsheet spreadsheetConverted = new Spreadsheet ( raw ) ; Es werden zwei Möglichkeiten zur Autorisierung implementiert. Verwendung von OAuth -Client -ID und Client -Geheimnis oder Verwendung eines bereitgestellten Schlüssels von der Google Developer -Konsole.
string key = "" ;
Authorizer authorizer = await Authorizer . Authorizer ( key ) ; string clientId = "" ;
string clientSecret = "" ;
Authorizer authorizer = await Authorizer . Authorize ( clientId , clientSecret ) ;HINWEIS: Änderungen von Anrufen erfordern eine OAuth -Autorisierung
new SheetSerializer() machen? Weil es sich um eine abstrakte Klasse handelt und Sie Ihre eigene Implementierung dieser Klasse vornehmen müssen.