Я не уверен, каковы ваши конечные цели здесь, но вы всегда будете использовать метод copyTo () из класса листа.
var source = SpreadsheetApp.getActiveSpreadsheet();
var sheet = source.getSheets()[0];
var destination = SpreadsheetApp.openById('ID_GOES HERE');
sheet.copyTo(destination);
Это даст вам точную копию вашего листасо всем форматированием и данными в целости.Объект «Лист», который вы возвращаете при вызове SpreadsheetApp.getActiveSheet()
, содержит все данные / формулы / стили, поэтому, в некотором смысле, ответ - да.Вы можете получить все это одним звонком.К сожалению, чтобы использовать эти данные, вы должны использовать отдельные методы, содержащиеся в объекте «Лист», который вы уже перечислили.Если вам нужна просто копия листа, я также копаю метод insertSheet()
, который является частью класса «Электронная таблица».Это выглядело бы следующим образом ..
var ss = SpreadsheetApp.getActiveSpreadsheet();
var templateSheet = ss.getSheetByName('Sales');
ss.insertSheet(1, {template: templateSheet});
Если ни один из этих методов не работает для вас, возможно, включение ваших намерений в вопрос поможет сообществу найти вам ответ.