Добавить строки с одного листа на другой

В Google таблице Пример_1 есть два листа. Нужно с помощью скрипта копировать все не пустые строки с "Лист 1" (диапазон A2:C - строки могут добавляться/удаляться) на "Лист 2" (целевые столбцы располагаются в диапазоне B:D), добавляя новые строки после уже имеющихся.

После прочтения большого количества примеров с реализацией стало ещё хуже, чем на начальном этапе. Всё, что попадалось, не совсем подходило и в итоге не работало, теперь не могу понять что использовать для решения.


Ответы (1 шт):

Автор решения: contributorpw

Вероятно, вам нужно что-то вроде этого

/**
 * Append values from to
 *
 * @param {GoogleAppsScript.Spreadsheet.Sheet} from
 * @param {GoogleAppsScript.Spreadsheet.Sheet} to
 * @return {number} Count of rows
 */
function appendValues_(from, to) {
  const fromRange = from.getRange('A2:C');
  const fromValues = fromRange
    .getValues()
    .filter(row => row.some(cell => cell !== ''));
  if (fromValues.length)
    to.getRange(
      to.getLastRow() + 1,
      2,
      fromValues.length,
      fromValues[0].length
    ).setValues(fromValues);
  fromRange.clearContent();
  return fromValues.length;
}

Необходимо взять весь массив данных без заголовка, очистить пустые строки и добавить на другой лист.

В коде так же есть очистка исходника.

введите сюда описание изображения

Полный код в сниппетах https://github.com/contributorpw/google-apps-script-snippets/blob/master/snippets/sheets/append_values_from_sheet_to_one/index.js

→ Ссылка