//шаблон с форматированием
var ss = SpreadsheetApp.getActiveSpreadsheet ();
var source = ss.getRange ("Лист1!A1:S41"); //диапазон для копирования
var toSheets = ss.getSheetByName("Лист2"); //лист для вставки диапазона
var toShetsRange = toSheets.getRange(toSheets.getLastRow()+1,1);
source.copyTo (toShetsRange, {contentsOnly: false});
}
Скрипт копирует с одного листа на другой. Условное форматирование, формулы. Но. Что сделать то бы он копировал группировку и ширину строк?
source.copyTo (toShetsRange, {полагаю вот тут собака зарыта. Но что конкретно не пойму: false});
https://developers.google.com/apps-script/reference/spreadsheet/range#getHeight()
На самом деле в скрипте с копированием диапазонов беда, в своё время эксперементировал, это геморойно, например для копирования бордюров ячейки нужно на каждую ячейку сделать восемь запросов по два на каждую позицию бордюра, а ещё есть поворот текста и т.д. Рекомендую посмотреть в сторону rest api таблиц, там всё отдаётся скопом, кроме поворота текста и не разбиваються совмещённые ячейки при вставке диапазона, в остальном отлично работает. Из гуглоскрипта, нашёл часть вызовов с которыми экпериментировал, возможно поможет. const getStartRow = namedRange.getRow() const getStartColl = namedRange.getColumn() const getTxtStyles = namedRange.getTextStyles() const getMerged = namedRange.getMergedRanges() const getBackgrounds = namedRange.getBackgrounds() const getVerticalAlign = namedRange.getVerticalAlignments() const getHorizontAlign = namedRange.getHorizontalAlignments()
Обсуждают сегодня