Некоторые ключевые слова / концепции, на которые вы можете посмотреть:
, поэтому в вашей связанной электронной таблице вы можете получить доступ к данным из этой таблицы, используя
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 использует относительные ссылки.
Я надеюсь, что у вас есть что продолжить,