Если вы хотите скопировать диапазон данных с одного листа на другой лист той же таблицы и сохранить форматирование:
Вы можете использовать метод copyTo (назначение, параметры) для диапазонов. Опция contentsOnly:true
гарантирует, что будет скопировано только содержимое, а форматирование листа назначения будет сохранено.
Образец:
function myFunction() {
var ss=SpreadsheetApp.getActive();
var sheet1=ss.getSheetByName('Sheet1');
var sheet2=ss.getSheetByName('Sheet2');
sheet1.getDataRange().copyTo(sheet2.getRange("A1"), {contentsOnly:true});
}
ОБНОВЛЕНИЕ
Если вы хотите скопировать диапазон данных из одной электронной таблицы в другую электронную таблицу и сохранить форматирование:
Вы можете использовать методы getValues () и setValues () . Это только скопирует значения и сохранит форматирование листа назначения.
Образец:
function myFunction() {
var ss=SpreadsheetApp.getActive();
var ss2=SpreadsheetApp.openById('XXXXXXXXXXXXXXXXXXXXXXXXX');
var sheet1=ss.getSheetByName('Sheet1');
var sheet2=ss2.getSheetByName('Sheet1');
var values=sheet1.getDataRange().getValues();
var range=sheet1.getDataRange().getA1Notation();
sheet2.getRange(range).setValues(values);
}