@facepalmzone

Как автосохранять с нескольких листов на один в Google Sheets?

Подскажите, как изменить код в Apps Script, чтобы по триггеру сохранялась информация из необходимых мне ячеек не с одного листа, а сразу с трех в Google Sheets, а именно:
Ячейки Лист1→Лист5
Ячейки Лист2→Лист5
Ячейки Лист3→Лист5

То, что я написал работает лишь для одной т.к. нельзя вставить в function несколько book.getSheetByName

function saveData() {
  const book = SpreadsheetApp.openById(
    'ID документа'
  );
  const sheet = book.getSheetByName('Лист1');
  const values = sheet.getRange('A1:H4').getValues();
  book.getSheetByName('Лист5').appendRow([new Date(), values[0][0], values[0][1], values[0][2], values[0][3], values[0][4], values[0][5], values[0][6], values[0][7]]);
  console.info(`saveData was called successful`);
}
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
oshliaer
@oshliaer Куратор тега Google Apps Script
Google Products Expert
Ну, например, вот так

function saveData2() {
  const book = SpreadsheetApp.openById(
    '1FUSSiDQoXyvKXfzYydoUUfcCGYq_TskpRiwfb28_1Z0'
  );
  const date = new Date();
  const sheetTotal = book.getSheetByName('TOTAL');
  const sheetGOOG = book.getSheetByName('NASDAQ:GOOG');
  const valuesGOOG = sheetGOOG.getRange('C3:U3').getValues().map(row => [date, 'NASDAQ:GOOG', ...row]);
  appendData_(sheetTotal, valuesGOOG);
  const sheetDIS = book.getSheetByName('NYSE:DIS');
  const valuesDIS = sheetDIS.getRange('C3:U3').getValues().map(row => [date, 'NYSE:DIS', ...row]);
  appendData_(sheetTotal, valuesDIS);
  console.info(`saveData was called successful`);
}

function appendData_(sheet, values) {
  if (sheet.getLastRow() === sheet.getMaxRows())
    sheet.appendRow([]);
  sheet.getRange(sheet.getLastRow() + 1, 1, values.length, values[0].length)
    .setValues(values);
}


  1. Берем лист 'NASDAQ:GOOG'
  2. Берем данные из 'C3:U3'
  3. Вызываем appendData_
  4. Повторяем для листа 'NYSE:DIS'


saveData2 задан для дневного триггера

Результат

61ded0ce1b9dd206623233.png

Пример добавил в Таблицу из этого ответа https://qna.habr.com/answer?answer_id=1834719#answ...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы