Подключить электронные таблицы в коде (разрешить импорт)

У меня есть электронная таблица с пользователями, из которой я автоматически создаю новую электронную таблицу (из шаблона на моем диске) при создании нового пользователя.

Затем я даю новому пользователю разрешение на просмотр таблицы и отправляю его ему по электронной почте.

Вот вопрос:

В шаблоне у меня есть поле, которое ссылается на другую электронную таблицу через Importrange («spreadsheeturl»). Теперь каждый раз, когда создается новая электронная таблица, мне нужно открывать лист с моей учетной записью и нажимать «Разрешить доступ» в любом из полей, которые ссылаются на электронную таблицу.

скриншот

Есть ли в моем коде какой-либо способ?


person Julian    schedule 14.06.2016    source источник


Ответы (1)


Хороший вопрос - честно говоря, не могу сказать. Но если цель состоит в том, чтобы просто перенести данные из существующей электронной таблицы в эту новую, вы можете использовать код для замены диапазона импорта.

Что-то вроде

var ss = SpreadsheetApp.getActiveSpreadsheet(),
data = openById("string-id"),
value = data.getRange(range).getValue();
ss.getSheetByName("sheet-name").getRange(range).setValue(value);

Надеюсь это поможет!

person CMena    schedule 14.06.2016
comment
Это должна быть ссылка, поскольку значение на исходном листе может измениться. - person Julian; 15.06.2016
comment
Я вижу твою проблему. Но importranges ненадежны - я использовал их, но они чрезвычайно склонны к случайным ошибкам. Вы можете использовать описанный выше метод с триггером для повторного запуска один раз в день или около того, чтобы таблица постоянно обновлялась. - person CMena; 15.06.2016