Существует два соответствующих типа «ID» для Google Sheets - один соответствует открытому в настоящее время файлу Google Sheets - spreadsheetId
, который также является тем же значением, что и Google Диск fileId
- а другой соответствует определенной Sheet
в электронной таблице Google Sheets и взаимозаменяемо известен как gridId
или sheetId
.
ИзДля данного Sheet
объекта вы можете использовать метод класса getParent()
, чтобы получить ссылку на включающий Spreadsheet
объект.A Spreadsheet
имеет метод getId()
, который возвращает необходимый fileId
/ spreadsheetId
для метода API листов batchUpdate
.
Очень часто уже есть ссылка на электронную таблицу:
const wkbk = SpreadsheetApp.getActive();
const sheet = wkbk.getSheetByName("some name");
// ...
Sheets.Spreadsheets.batchUpdate({'requests': request}, wkbk.getId());
В зависимости от того, как структурирован ваш код, эта ссылка может быть вне области, и, возможно, вы не хотите/ не может включить соответствующий идентификатор в список аргументов функции:
function foo() {
const wkbk = SpreadsheetApp.getActive();
const wkbkId = wkbk.getId();
// ...
doSheetUpdate_(wkbk.getSheetByName("some name"));
// ...
}
function doSheetUpdate_(sheet) {
const wkbkId = sheet.getParent().getId();
const rq = getRequest_(sheet.getSheetId());
// ...
const resp = Sheets.Spreadsheets.batchUpdate({'requests': rq}, wkbkId);
}
function getRequest_(sheetId) {
// ...
}