Листы(вкладки) Google-таблиц

TommyGun

Client
Регистрация
26.02.2024
Сообщения
5
Реакции
0
Баллы
1
Добрый день
Второй день мучает вопрос как перебирать в гугл таблице отдельные листы.
В моём шаблоне парсятся данные и заливаются в гугл таблицу отдельно в каждый лист. Проблема в том, что руками через Привязку к url не канает, потому что листов может быть 100+. Надо организовать перебор каждого листа по отдельности. Грубо говоря нужно извлечь с таблицы все ссылки на каждую из страниц и положить их в список или переменную, чтобы потом по одной ссылке перебирать через Привязку к url
За google api знаю, перечитал весь форум, нашел только древние посты двух решений - через обработку json (access токены и т.д.) и эту тему 2018 года где идут танцы с бубном через visual Studio и не понятно что куда клацать
В итоге рабочего актуального решения я не нашёл.
Прошу помочь.
 
привязал к url , поработал, привязал к другому... и так в цикле все страницы перебрал.
Спасибо за ответ, но это и так понятно либо меня не так поняли )
Я имею ввиду, что не предусмотрено забивать в ручную каждый урл на вкладку в список или в переменную, потому что урлов (страниц) может быть очень много и это не удобно, поэтому я ищу решение для того, чтобы шаблон при выполнении извлекал все текущие ссылки на страницы и кидал их например в переменную, чтобы потом выполнялся как раз таки перебор тот самый в цикле)
 
Спасибо за ответ, но это и так понятно либо меня не так поняли )
Я имею ввиду, что не предусмотрено забивать в ручную каждый урл на вкладку в список или в переменную, потому что урлов (страниц) может быть очень много и это не удобно, поэтому я ищу решение для того, чтобы шаблон при выполнении извлекал все текущие ссылки на страницы и кидал их например в переменную, чтобы потом выполнялся как раз таки перебор тот самый в цикле)
так и не вбивай вручную... есть же кубик привязки URL к таблице. вот им и пользуйся. в цикле.
 
так и не вбивай вручную... есть же кубик привязки URL к таблице. вот им и пользуйся. в цикле.
Снова не понял меня)
кубик привязки URL к таблице не даёт возможности извлекать ссылки на уже существующие листы. Я знаю, что я могу создать лист с помощью этого кубика и положить урл этого листа в переменную, но мне не нужно создавать новый лист, мне нужно ИЗВЛЕКАТЬ все урлы уже существующих листов.
Надеюсь теперь понятно)
 
Снова не понял меня)
кубик привязки URL к таблице не даёт возможности извлекать ссылки на уже существующие листы. Я знаю, что я могу создать лист с помощью этого кубика и положить урл этого листа в переменную, но мне не нужно создавать новый лист, мне нужно ИЗВЛЕКАТЬ все урлы уже существующих листов.
Надеюсь теперь понятно)
а чем URL листов в одном документе отличаются ?
 
Такого функицонала в постере не предусмотрено.
Стандартными экшенами понятно, что нет
Но есть C# код на подобии этого:

Авторизация:
Развернуть Свернуть Копировать
using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using Google.Apis.Sheets.v4;
using Google.Apis.Sheets.v4.Data;
using System.Threading;

UserCredential credential;
using (var stream = new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
{
    string credPath = "token.json";
    credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
        GoogleClientSecrets.Load(stream).Secrets,
        new[] { SheetsService.Scope.Spreadsheets },
        "user",
        CancellationToken.None,
        new FileDataStore(credPath, true)).Result;
}

// Создаем объект сервиса Google Sheets API
var service = new SheetsService(new BaseClientService.Initializer()
{
    HttpClientInitializer = credential,
    ApplicationName = "Zennoposter",
});

Идёт авторизация, после еще кусок кода для извлечения всех урлов страниц и добавления в переменную
Типо такого:
Развернуть Свернуть Копировать
// Обработайте список листов и извлеките их ссылки и названия
var sheetLinks = new List<string>();
var sheetNames = new List<string>();
foreach (var sheet in sheets)
{
    // Сформируйте ссылку на текущий лист в таблице
    var sheetLink = $"https://docs.google.com/spreadsheets/d/{spreadsheetId}/edit#gid={sheet.SheetId}";

    // Добавьте ссылку и название листа в соответствующие списки
    sheetLinks.Add(sheetLink);
    sheetNames.Add(sheet.Title);
}


Но какие варианты я не пробовал пихать в с# кубик вечно ошибки сыпет. Уже и директивы добавлял в using и библиотеки dll google.api и другие
 
ну тебе либо разбираться в гуглAPI, либо с найденной библиотекой...
или вот эту статью прочитать https://ru.extendoffice.com/documents/excel/5222-google-sheets-get-list-of-sheets.html возможно будет проще внедрить скрипт на отдельную страницу и парсить уже готовые данные.
правда, фиг знает что за задачи вообще стоят :bk:
 
Стандартными экшенами понятно, что нет
Но есть C# код на подобии этого:

Авторизация:
Развернуть Свернуть Копировать
using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using Google.Apis.Sheets.v4;
using Google.Apis.Sheets.v4.Data;
using System.Threading;

UserCredential credential;
using (var stream = new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
{
    string credPath = "token.json";
    credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
        GoogleClientSecrets.Load(stream).Secrets,
        new[] { SheetsService.Scope.Spreadsheets },
        "user",
        CancellationToken.None,
        new FileDataStore(credPath, true)).Result;
}

// Создаем объект сервиса Google Sheets API
var service = new SheetsService(new BaseClientService.Initializer()
{
    HttpClientInitializer = credential,
    ApplicationName = "Zennoposter",
});

Попробуйте дальше вот это

C#:
Развернуть Свернуть Копировать
// Получение списка листов из таблицы
SpreadsheetsResource.GetRequest request = service.Spreadsheets.Get(spreadsheetId);
Spreadsheet spreadsheet = request.Execute();
IList<Sheet> sheets = spreadsheet.Sheets;

// Перебор листов и вывод их названий
foreach (Sheet sheet in sheets)
{
    Console.WriteLine("Название листа: " + sheet.Properties.Title);
}

Console.ReadLine();

// Console заменить на project и вывести инфу в лог
 
Немного апну тему. При попытке работать с гугл таблицами посредством c# кода постоянно выдает такую ошибку:

Компиляция кода Ошибка в действии "CS0234" "Ошибка в директивах using. The type or namespace name 'Services' does not exist in the namespace 'Google.Apis' (are you missing an assembly reference?)". [Строка: 5; Cтолбец: 19]

Хотя все директивы добавил, все библиотеки тоже. Но все равно постоянно сыпет такую ошибку
Буду очень благодарен за помощь
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)