@moistrenko

Как закрепить заливку на строках при выполнении скрипта по добавлению строк в гугл-таблицах?

Есть таблица с большим количеством строк. Нужно после каждой строки, где есть ячейка "LOGO" добавить строку, в которую попадает содержимое предыдущей строки. Удалось написать такой скрипт

function myFunction() {
  const sh = SpreadsheetApp.getActiveSheet();
  const data = sh.getDataRange().getValues();
  const targetData = new Array();

  data.forEach((rowData) => {
    targetData.push(rowData);

    rowData.forEach((cellData) => {
      if (typeof cellData === 'string' && cellData.indexOf('LOGO') != -1) {
        targetData.push(rowData);
      }
    });
  });

  sh.getRange(1, 1, targetData.length, targetData[0].length).setValues(targetData);
}


Но проблема, что в файле много строк, которые окрашены в определенный цвет, и при добавлении новых строк этот цвет остается на предыдущем месте, вместо того, чтобы сдвинуться вместе со смещаемыми строками
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
oshliaer
@oshliaer Куратор тега Google Apps Script
Google Products Expert
Эту задачу нужно решать через Google Sheets Advanced Service. Используйте batchUpdate insertRangeRequest https://developers.google.com/sheets/api/reference...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
BasiC2k
@BasiC2k
.NET developer (open to job offers)
Варианта решения - два:
1. Вставлять новую строку. Минус - на больших объёмах это будет медленно;
2. Составлять массив ячеек и их Background и потом применять. Например так:

var rangeList = sheet.getRangeList(['A1', 'C1', 'D1', 'D17', 'H1']);
rangeList.setBackground('#cfe2f3');
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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