Я пытаюсь прочитать электронную таблицу Google в нашем приложении и которая работает нормально на данный момент.
Однако, как я могу найти конкретную ячейку на основе предоставленного значения и чтения электронной таблицы из этой ячейки.Например, электронная таблица содержит 100 строк с данными для 2 столбцов (Имя, Город).
Поэтому мне нужно найти идентификатор ячейки из столбца Имя.Например, Name = 'John' возвращает CellID как 'A50'. Затем я начну читать электронную таблицу из A50.
Ниже приведен мой код, в котором я читаю данные из жестко закодированного идентификатора ячейки / диапазона
static string[] DocsScopes = { SheetsService.Scope.SpreadsheetsReadonly };
static string ApplicationName = "Other client 2";
private static void ReadExcelSheet()
{
UserCredential credential;
using (var stream = new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
{
string credPath = "token.json";
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
DocsScopes,
"user",
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
Console.WriteLine("Credential file saved to: " + credPath);
}
// Create Google Sheets API service.
var service = new SheetsService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
// Define request parameters.
string spreadsheetId = "1_kJmQsQ2tQxTe0K8upz3byrfSfQ9db_jIitvq3wqsaza8Yzo";
string range = "Sheet1!A2:B";
SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(spreadsheetId, range);
ValueRange response = request.Execute();
IList<IList<object>> values = response.Values;
if (values != null && values.Count > 0)
{
foreach (var row in values)
{
Console.WriteLine("{0}, {1}", row[0], row[1]);
}
}
else
{
Console.WriteLine("No data found.");
}
Console.Read();
}