Как получить доступ к нескольким таблицам (не листам) в одном скрипте приложения Google? - PullRequest
1 голос
/ 02 октября 2019

Фон

У меня есть 2 отдельные таблицы. Они получают представления в форме Google для запросов на оценку очистки окон от различных средств коммуникации;

  • одна электронная таблица фиксирует все отправленные по электронной почте запросы,
  • другая электронная таблица фиксирует все запросы по телефону.

Будь то по электронной почте или по телефону, данные, которые я собираю, одинаковы.

Консолидация ответов

Я нашел, как получить изменения для редактирования из отправленных форм. Но когда происходит обновление, я хочу переместить эти данные в другую электронную таблицу, которая называется «скомпилированный список оценок», что именно так и звучит. Он компилирует данные в одну электронную таблицу после отправки формы в любую другую электронную таблицу, которую я включил в код.

Моя проблема

Как мне вызвать другие отдельные таблицы из моей связанной таблицы или мне нужно будет написать код в таблицах формы отправки и направить эти данныев список компиляторов?

Я новичок, мне просто нужны ключевые слова, и я отправлюсь в гонки. Вы знаете, как это: «вы не знаете, чего не знаете» - это я с синтаксисом этого кода.

1 Ответ

1 голос
/ 02 октября 2019

Некоторые ключевые слова / концепции, на которые вы можете посмотреть:

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

var ss = SpreadsheetApp.getActiveSpreadsheet()

, но в этой связанной электронной таблице, чтобы получить доступВторичная электронная таблица, которую вы используете

var ss_other = SpreadsheetApp.openById("xxxxxxx")

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

, например, для перемещения значений в диапазоне A1: B10 из одной электронной таблицы в другую, вы можете сделать следующее

var ss = SpreadsheetApp.getActiveSpreadsheet()
var sht = ss.getSheetByName("sourceSheet") //whatever the sheet is called with the source data
var rng = sht.getRange("A1:B10")
var values = rng.getValues()
var height = values.length
var width = values[0].length
var ss_dest = SpreadsheetApp.openById("xxxxxxx")
var sht_dest = ss_dest.getSheetByName("destSheet")
var destRng = sht_dest.getRange(1,1,height,width)
destRng.setValues(values)

, где xxxxxx - это идентификатор электронной таблицы, которую можно получить по URL-адресу, когда он открыт в листах, например, https://docs.google.com/spreadsheets/d/xxxxxxx/edit

При использовании setValues() целевой диапазон, который вы 'получаете', должен иметь тот же размер и форму, что и исходный диапазон, то есть такое же количество строк и столбцов. Вы не можете получить значения от A1: B10, затем просто скажите setValues(), чтобы установить диапазон «A1», и ожидать, что оно будет заполняться от A1 до B10. Поэтому, если исходный диапазон имеет переменный размер, вы устанавливаете размер данных в источнике и используете эти измерения в месте назначения getRange() - вот почему в приведенном выше коде используются переменные 'height' и 'width' и место назначенияgetRange() call использует относительные ссылки.

Я надеюсь, что у вас есть что продолжить,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...