Гугл таблицы — как получить список всех листов?

Имеем таблицу со 100 листами (Лист1, Лист2, Лист3 ... ) . Как получить вертикальный список всех листов:

Лист1
Лист2
Лист3
?
  • Вопрос задан
  • 11149 просмотров
Пригласить эксперта
Ответы на вопрос 2
function getSheetsListOnSeparateSheet(){ // пример вывода на отдельный лист
  let ss = SpreadsheetApp.getActiveSpreadsheet();
  let listWithSheetsNames = ss.insertSheet(0); // или куда вам нужно выводить список листов. 0 - добавляет лист на первое место
  for (let i = 1; i < ss.getNumSheets(); i++){ // если используете другой способ вывода - замените i = 0
    listWithSheetsNames.getRange(listWithSheetsNames.getLastRow() + 1, 1).setValue(ss.getSheets()[i].getSheetName());
  }
}

Циклом происходит перебор всех листов в книге.
Ответ написан
Комментировать
public class MySpreadsheetIntegration {
  public static void main(String[] args)
      throws AuthenticationException, MalformedURLException, IOException, ServiceException {

    SpreadsheetService service =
        new SpreadsheetService("MySpreadsheetIntegration-v1");

    // TODO: Authorize the service object for a specific user (see other sections)

    // Define the URL to request.  This should never change.
    URL SPREADSHEET_FEED_URL = new URL(
        "https://spreadsheets.google.com/feeds/spreadsheets/private/full");

    // Make a request to the API and get all spreadsheets.
    SpreadsheetFeed feed = service.getFeed(SPREADSHEET_FEED_URL,
        SpreadsheetFeed.class);
    List<SpreadsheetEntry> spreadsheets = feed.getEntries();

    if (spreadsheets.size() == 0) {
      // TODO: There were no spreadsheets, act accordingly.
    }

    // TODO: Choose a spreadsheet more intelligently based on your
    // app's needs.
    SpreadsheetEntry spreadsheet = spreadsheets.get(0);
    System.out.println(spreadsheet.getTitle().getPlainText());

    // Make a request to the API to fetch information about all
    // worksheets in the spreadsheet.
    List<WorksheetEntry> worksheets = spreadsheet.getWorksheets();

    // Iterate through each worksheet in the spreadsheet.
    for (WorksheetEntry worksheet : worksheets) {
      // Get the worksheet's title, row count, and column count.
      String title = worksheet.getTitle().getPlainText();
      int rowCount = worksheet.getRowCount();
      int colCount = worksheet.getColCount();

      // Print the fetched information to the screen for this worksheet.
      System.out.println("\t" + title + "- rows:" + rowCount + " cols: " + colCount);
    }
  }
}

Пример из справки Spreadsheets API google,
https://developers.google.com/google-apps/spreadsheets/

Конкретно вначале берется список всех таблиц которые есть у этого юзера:
List<SpreadsheetEntry> spreadsheets = feed.getEntries();

Затем выбираем нужную таблицу и выводим список всех листов ней так как Вам нужно:
SpreadsheetEntry spreadsheet = spreadsheets.get(0);

List<WorksheetEntry> worksheets = spreadsheet.getWorksheets();

    // Iterate through each worksheet in the spreadsheet.
    for (WorksheetEntry worksheet : worksheets) {
      // Get the worksheet's title, row count, and column count.
      String title = worksheet.getTitle().getPlainText();

      System.out.println("\t" + title);
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы