Скрипт переноса 1 листа из одной таблицы в другую
Всем привет, нужен скрипт для переноса 1 определенного листа одной таблицы в другую, лучше через отправку из источника. Нашел здесь Здесь что-то похожее, но не смог разобраться, как импортировать только 1 лист.
function importSheets() {
var url = "ссылка_на_документ";
var origin = SpreadsheetApp.openByUrl(url);
var result = SpreadsheetApp.getActiveSpreadsheet();
var sheets = origin.getSheets();
for (var sheet in sheets){
sheets[sheet].copyTo(result)
};
}
Перенос данных из 1 таблицы в другую не подходит, потому что картинки не переносятся, ну или есть какой-то способ перенести картинки.
Нужно отправить только 1 лист в другую таблицу, в нём текст и картинки в ячейках.
UPD. Получившийся результат, возможно "топорный", но рабочий.
//Делаем кнопку для запуска скрипта
function onOpen(e) {
SpreadsheetApp.getUi()
.createMenu(`▶️ Меню`)
.addItem("✅ Название кнопки", "userAction")
.addToUi();
}
//Функция, удаляющая все листы, кроме одного
var del = function DeleteAllSheets() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
for (i = 0; i < sheets.length; i++) {
switch(sheets[i].getSheetName()) {
case "Имя листа, который не нужно удалять":
break;
default:
ss.deleteSheet(sheets[i]);}}}
//Функция, которая копирует нужный лист с нужной таблицы
var rozn = function importSheets() {
var origin = SpreadsheetApp.openById('ID таблицы, откуда копируем').getSheetByName('Название листа, который копируем');
var result = SpreadsheetApp.getActiveSpreadsheet();
origin.copyTo(result).setName(origin.getName())
}
//Функция, которая объединяет предыдущие две функции, чтобы запустить их по кнопке
function userAction(){
del();
rozn();
}
Источник: Stack Overflow на русском