#google-apps-script #google-sheets
Вопрос:
У меня есть лист с данными, и я хочу скопировать значения с этого листа на основной лист.
Данные с листа импорта получены несколькими массивами, поэтому, когда я копирую их на основной лист, они копируются неправильно.
Как я могу скопировать только конечный результат этого листа? (только «видимая» часть)
function copyTo() {
var source = SpreadsheetApp.openById("xxxxxxxxxxxxx"),
sheet = source.getSheetByName('ImportJSON'),
destination = SpreadsheetApp.getActiveSpreadsheet(),
destSheet = destination.getSheetByName('universe'),
copydSheet = sheet.copyTo(destination);
copydSheet.getDataRange().copyTo(destSheet.getDataRange(),{contentsOnly:true});
destination.deleteSheet(copydSheet);
}
Ответ №1:
Попробуйте использовать приведенный ниже сценарий:
function CopyDataToNewFile() {
var sss = SpreadsheetApp.openById('SOURCE'); // sss = source spreadsheet
var ss = sss.getSheetByName('SOURCE_SHEET'); // ss = source sheet
//Get full range of data
var SRange = ss.getDataRange();
//get A1 notation identifying the range
var A1Range = SRange.getA1Notation();
//get the data values in range
var SData = SRange.getValues();
var tss = SpreadsheetApp.openById('TARGET'); // tss = target spreadsheet
var ts = tss.getSheetByName('TARGET_SHEET'); // ts = target sheet
//set the target range to the values of the source data
ts.getRange(A1Range).setValues(SData);
}
Просто замените SOURCE
, SOURCE_SHEET
, TARGET
, и TARGET_SHEET
на то, что соответствует вашим потребностям.
Комментарии:
1. Есть ошибка» Ошибка типа: copydSheet.getDataRange(…).getValues(…).CopyTo не является функцией». Спасибо за помощь.
2. Я отредактировал свой ответ, надеюсь, теперь он должен сработать.
3. Это тоже не работает. Может быть, это потому, что я копирую лист, а не диапазон.
4. Не беспокойтесь, я рад, что смог помочь.