Как изменить цвет текста в ячейке таблицы Google Docs в скрипте? - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь воспроизвести эту таблицу, но с помощью Google Docs Script.

Обратите внимание, что в каждой ячейке есть разные цвета и разные стили фона и шрифта. Я могу создать таблицу следующим образом:

  var cells = [
    ['Row 1, Cell 1', 'Row 1, Cell 2'],
    ['Row 2, Cell 1', 'Row 2, Cell 2']
  ];

  // Build a table from the array.
  body.appendTable(cells);

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

1 Ответ

3 голосов
/ 28 апреля 2020

Я считаю, что ваша цель заключается в следующем.

  • Вы хотите изменить стиль текста в текстах в ячейках таблицы.
  • Вы хотите добиться этого с помощью Google Apps Скрипт.

Для этого, как насчет этого ответа?

В этом случае используется следующий поток:

  1. Извлекать текстовый объект из каждого ячейка, используя editAsText().
  2. Для полученного текстового объекта измените стиль текста, используя setBackgroundColor, setForegroundColor, setBold, setFontFamily и т. д.

Пример сценария:

В этом примере сценария таблица с 2 x 2 ячейками добавляется к телу документа. И, стили текста ячеек "A1" и "B2" изменены.

function myFunction() {
  var body = DocumentApp.getActiveDocument().getBody();

  var cells = [
    ['This is my text', 'Row 1, Cell 2'],
    ['Row 2, Cell 1', 'Some more text']
  ];
  var table = body.appendTable(cells);

  // Modify the text style of the cell "A1".
  table.getCell(0, 0).editAsText()
    .setBackgroundColor(0, 7, "#FFFF00")
    .setForegroundColor(5, 9, "#FF0000")
    .setBackgroundColor(8, 14, "#00BFFF")
    .setBold(8, 14, true);

  // Modify the text style of the cell "B2".
  table.getCell(1, 1).editAsText()
    .setFontFamily(5, 13, "IMPACT")
    .setBackgroundColor(5, 13, "#00BFFF")
    .setBold(5, 13, true);
}
  • Например, если вы хотите изменить цвет фона текста, пожалуйста, используйте setBackgroundColor(startOffset, endOffsetInclusive, color). Ref Когда стиль текста This is изменен, используйте setBackgroundColor(0, 7, "#FFFF00").

Результат:

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

enter image description here

Ссылки:

...