Скрипт для изменения индивидуального цвета текста в ячейке

10

У меня есть таблица Google с сотнями имен сотрудников для расписания. Каждая ячейка имеет несколько имен в этой ячейке, которые выглядят так:

First Last
First Last
First Last

First Last
First Last

Многие из названий помечены красным цветом, а остальные остаются черными. Я использую сценарий для удаления лишних символов новой строки, чтобы свернуть имена (многие из них удаляются с помощью поиска / замены для таких вещей, как выходные, что приводит к пустому символу новой строки):

First Last
First Last
First Last
First Last
First Last

Проблема в том, что при запуске этого скрипта красный шрифт имен меняется на черный. Я не могу найти способ написать цикл for, чтобы превратить эти отдельные строки в ячейке обратно в красный цвет. Я либо получаю красный текст в ячейке, либо HTML-код, указывающий, что он должен быть красным.

Любые идеи о том, как я мог бы сделать эту работу?

Дэвид
источник
2
Частичное форматирование содержимого ячеек является недавним дополнением к Google Sheets, и оно не совсем интегрировано с остальной логикой электронных таблиц. В частности, формулы и сценарии не знают о таком форматировании и не могут его применять. Их вывод не несет с собой такого форматирования.

Ответы:

2

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

В этом случае пользователи могут обратиться к средству отслеживания ошибок в скриптах Служб Google, чтобы найти запрос функции, а в случае, если он не был отправлен. Если запрос функции уже существует для функции, которую вы ищете, отметьте ее, так как группа сценариев Служб Google считает, что количество людей, отметивших запрос функции, определит их приоритетность.

Пожалуйста, пометьте следующий запрос функции

Проблема 6000: Программная обработка частей содержимого ячеек

Рубена
источник
2

ОБНОВЛЕНИЕ: методы, упомянутые в этом посте, теперь включены в заметки о выпуске от 22 января 2019 года.

Кто-то нашел недокументированные методы и поделился примерами, актуальными для этого вопроса.

От комментария 21 к Обработке частей содержимого ячеек, программно упомянутых в моем предыдущем ответе .

Вы также можете получить текущий формат ячейки, в которой разные части текста ячейки находятся в разных стилях:

  var richText = ss.getCurrentCell().getRichTextValue();
  var runs = richText.getRuns();
  for (var i=0; i<runs.length; i++)
  {
    // get the style of this section of text, between startIndex and endIndex
    var run = runs[i];
    var startIndex = run.getStartIndex();
    var endIndex = run.getEndIndex();
    var styleBold = run.getTextStyle().isBold();
  }

Вероятно, новые методы будут объявлены на этой неделе сначала в Google Cloud Next 18 в Сан-Франциско, а затем в блоге разработчиков Google.

связанные с

Рубена
источник