#javascript #google-sheets-api
#javascript #google-sheets-api
Вопрос:
Как мне указать конкретный рабочий лист в этом Google Sheet (sheetId), в который я хочу вставить строки? С помощью приведенного ниже кода он вставляет строки в первый рабочий лист. Я знаю, как указать рабочий лист с помощью вызова append API ( spreadsheets/' sheetId '/values/' range ':append
), но тот же синтаксис здесь не работает для вызова batchUpdate (https://developers.google.com/sheets/api/samples/rowcolumn#insert_an_empty_row_or_column ).
Чего мне не хватает?
const resource = {
requests: [
{
insertDimension: {
range: {
dimension: 'ROWS',
startIndex: 1,
endIndex: 5
}
}
}
]
};
var url = 'https://sheets.googleapis.com/v4/spreadsheets/' sheetId ':batchUpdate';
var xhr = new XMLHttpRequest();
xhr.open("POST",url,false);
xhr.setRequestHeader("Authorization", "Bearer " token);
xhr.send(JSON.stringify(resource));
Ответ №1:
Я обнаружил, что мне нужно включить поле «sheetId» внутри объекта «range» в моем запросе. Этот идентификатор листа НЕ совпадает с идентификатором электронной таблицы (о котором я изначально думал). Это также не имя отдельного рабочего листа, а фактически номер, присвоенный Google, который соотносится с отдельным рабочим листом.
Я могу узнать этот номер, только вызвав spreadsheets.get , который является следующим URL: https://sheets.googleapis.com/v4/spreadsheets/' spreadsheetId '?fields=sheets.properties
.
Ссылка:https://developers.google.com/sheets/api/samples/sheet#determine_sheet_id_and_other_properties
Я включил параметр «поля» в приведенный выше URL-адрес, чтобы получить только свойства листа (который включает идентификаторы листов, имена и т.д.), А не все данные ячейки. Я могу использовать объект return, чтобы просмотреть все листы в электронной таблице и их идентификаторы листов, заголовки и другую информацию. Я могу использовать этот идентификатор листа для выполнения вызова, который я изначально хотел выполнить с помощью batchUpdate.