Мне нужно связать информацию со строкой в Google Sheet программно, с минимальным взаимодействием с пользователем. Ассоциация должна оставаться связанной с той же строкой, даже если строка добавлена или удалена выше. Кроме того, информация должна быть удалена, если строка является.
Для меня это звучит как работа для DeveloperMetadata.
Я бы хотел сделать это без API, чтобы избежать добавления дополнительных переменных. Я бы использовал именованные диапазоны, прежде чем использовать API.
В любом случае, у классов Spreadsheet, Sheet и Range есть метод: addDeveloperMetadata с различными входными данными - ни один из них не имеет ввода DeveloperMetadataLocationType (проблема № 1).
Интересно, что, как следует из ответа здесь , следующий код ДОЛЖЕН добавлять метаданные разработчика в столбец:
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange("H:H").addDeveloperMetadata("columnName", "price");
Однако я не могу на всю жизнь понять, как создать диапазон «ROW» для добавления метаданных. Я пробовал следующее:
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(1, 1, 1, sheet.getMaxColumns()).addDeveloperMetadata("rowStatus", "processing");
и
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange("A2:L2").addDeveloperMetadata("rowStatus", "processing");
где L - последний столбец.
В обоих случаях я получаю следующую ошибку:
Добавление метаданных разработчика в произвольные диапазоны в настоящее время
поддерживается. Метаданные разработчика могут быть добавлены только на верхний уровень
электронная таблица, отдельный лист или вся строка или столбец.
Есть ли способ указать, что диапазон - это строка, поэтому я могу добавить к ней метаданные?