Это API, который по большей части соответствует версии 4 Google Sheets API. Поэтому, если вам нужна документация о том, как использовать этот API, вы должны проконсультироваться с их API и использовать привязки C#. На вершине также есть меньший уровень высокого уровня, который полезен для людей, которым просто нужно получить доступ к данным из 2D -массива.
Существует класс абстрактных листов, так что вы можете использовать любой сериализатор JSON, который вам нужен.
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 ) ;
}
} Требования к использованию API Google Sheets состоит в том, чтобы иметь электронный таблиц и токен доступа. Электронная чашка может быть извлечена из URL. Вам также нужно будет предоставить свойство SheetsSerializer.Serializer с помощью собственного объекта сериализатора.
https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}
Токен API может быть создан из консоли Google API, чтобы получить дополнительную информацию об этом, посетите эту статью по Google
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 ) ;
}
}
} Если вы хотите использовать API низкого уровня, вы можете использовать метод GetRaw() вместо Get() . Альтернатива метода RAW будет выдавать объект SpreadsheetRaw , который идентичен ссылке Google API.
Если вы хотите работать как с низким уровнем, так и с высоким уровнем, вы можете создать электронную таблицу из электронной таблицы низкого уровня, передавая ее в конструктор. То же самое можно сделать для преобразования необработанного листа на лист высокого уровня. Это не может быть сделано наоборот, и по дизайну.
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 ) ; Два способа авторизации реализованы. Использование идентификатора клиента OAuth и секрета клиента или использование предоставленного ключа из консоли разработчика Google.
string key = "" ;
Authorizer authorizer = await Authorizer . Authorizer ( key ) ; string clientId = "" ;
string clientSecret = "" ;
Authorizer authorizer = await Authorizer . Authorize ( clientId , clientSecret ) ;Примечание: изменение вызовов требует авторизации OAuth
new SheetSerializer() ? Потому что это абстрактный класс, и вы должны сделать свою собственную реализацию этого класса.