Получение диапазона данных с разных листов таблицы через URL

Есть таблицы google sheets с несколькими листами, мне нужно получить информацию со всех листов, но только в диапазоне А1:H50 через URL.

По такому урлу: https://sheets.googleapis.com/v4/spreadsheets/[spreadsheets_id]?key=[access_key]&includeGridData=true я получаю все листы в диапазоне A1:1005. Из-за этого это давольно длительный процесс, чего и хочется избежать.

По урлу: https://sheets.googleapis.com/v4/spreadsheets/[spreadsheets_id]?key=[access_key]&includeGridData=true&ranges=A1%3AH50 я получаю нужный диапазон, но только первого листа, а нужно со всех.

Из документации пробовал что-то в духе Sheet1!A1:B2, но выбивает ошибку, что неизвестный параметр.


Ответы (1 шт):

Автор решения: Александр Добров
const ID = '1iZlEa2Qx4qLK4F4WmT9Sv-5IKRlGc3ba1-V-aXy_yEI'; // ID таблицы
const RANGE ='A1:H50'; // диапазон данных на каждом листе // функция вернет массив данных забранных со всех листов таблицы с ID с диапазонов RANGE
function getData() {
  let data = []; // объявляем массив в который будем складывать данные с каждого листа - результат
  SpreadsheetApp.openById(ID).getSheets().forEach(
    sheet => data = data.concat(sheet.getRange(RANGE).getValues())) // получаем все листы таблицы и в виде массива, с помощью метода forEach обращаемся в каждому листу и конкатенацией добавляем массивы данных полученные с объявленного диапазона с каждого листа в объявленный ранее массив data
    Logger.log(data) // смотрим результат в лог журнале
    return data //возвращаем результат
}
→ Ссылка