Как получить цветную ячейку с текстом из другого листа в электронной таблице Google? - PullRequest
0 голосов
/ 13 июня 2019

Как получить Цветную ячейку с текстом из другого листа в электронной таблице Google?

Привет, у меня есть 2 листа, и я пытаюсь получить цветную ячейку с текстом с листа 1 на лист 2.

Может кто-нибудь помочь мне, пожалуйста?

Пример:

В листе 1 я поместил данные в строку 1 столбца 1, а затем закрасил их желтым цветом, в то же время он появитсяв листе 2 столбец 1 строка 1.

1 Ответ

1 голос
/ 13 июня 2019

Копировать все

Если вы хотите скопировать все, включая Range значения, цвет, цвет фона и т. Д. - используйте простой метод copyTo().Просто помните, что Range размеры должны быть равны (ofc, вы всегда можете добавить обработку для учета этого).

/**
 * Copies all;
 * @param {Range} source copy from range;
 * @param {Range} target copy to range;
 */
function copyAll(source,target) {
  source.copyTo(target);
}

Условная копия

Если вы хотитечтобы скопировать только определенные свойства Range, вышеупомянутый метод copyTo() может быть вызван с помощью перечисления CopyPasteType, например, так (обратите внимание, что из-за конфликта с вызовом двух аргументов copyTo(range,options) необходима транспонирование arg -Вы можете жестко закодировать его внутри функции, если не ожидаете изменения ориентации):

/**
 * Copies only specific props;
 * @param {Range} source copy from range;
 * @param {Range} target copy to range;
 * @param {String} type enum CopyPasteType;
 * @param {Boolean} transposed change orientation or not;
 */
function copyConditional(source,target,type,transposed) {
  var t = SpreadsheetApp.CopyPasteType[type];
  source.copyTo(target,t,transposed); //if transpose is not specified, will be treated as copyTo(destination,options)!;
}

Копирование с помощью геттера и сеттера

Например, используйте getBackgrounds() и setBackgrounds() соответственно (есть много других методов получения-установки, которые вы можете использовать отдельно вместо copyTo(), см. ссылку Range в полезных ссылках).

/**
 * Copies background color;
 * @param {Range} source copy from range;
 * @param {Range} target copy to range;
 */
function copyColor(source,target) {
  var color = source.getBackgrounds();  
  target.setBackgrounds(color);
}

Полезные ссылки

  1. copyTo() ссылка ;
  2. CopyPasteType перечисление ссылка ;
  3. Range класс ссылка ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...