Как я могу отправить по электронной почте определенный диапазон ячеек, сохраняя отображаемое форматирование? - PullRequest
0 голосов
/ 01 июня 2019

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

Вот мой демонстрационный лист: https://docs.google.com/spreadsheets/d/1ibB87Vhz7wTjKrIrasYSRLoAiadQHtNqqmyl-xywtOI/edit?usp=sharing

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

В настоящее время он принимает displayValues ​​и перечисляет их с запятыми.Я также надеюсь избавиться от комы и, если возможно, ограничить диапазон только ячейками с данными в этом диапазоне.

Вот что я получил:

    function sendReport(){
      var incidents = SpreadsheetApp.getActiveSheet().getRange(2,1,4,1).getDisplayValues();
      var subjectRange = SpreadsheetApp.getActiveSheet().getRange("A1");
      var subjectCell = subjectRange.getValues();
      for (i in subjectCell) {
        var rowData = subjectCell[i];
        var subject = rowData [0];
      }
      MailApp.sendEmail("emailaddress@domain.com",
                subject,
                incidents);
    }

1 Ответ

0 голосов
/ 01 июня 2019

Это потому, что вы буквально отправляете Array в своем электронном письме (поскольку getValues() возвращает 2-мерное Array). Если вы хотите продолжить форматирование, вы должны создать html-таблицу из этого массива, выполнив итерацию по ней, и добавить результат в тело письма с помощью свойства htmlBody в параметрах.

Посмотрите документацию для получения подробной информации о том, как получить стили из Range. Вам нужно будет сопоставить каждый стиль с атрибутом style="" для HtmlElement s, который вы хотите отформатировать, например, (чтобы сэкономить ресурсы, получить стиль и включить его в цикл Array):

  1. getFontColors() - color:{method result} (если есть, применить к HtmlTableElement);
  2. getFontFamilies() - font-family:{method result};
  3. ... и т.д ...

или просто получите все стили оптом с помощью getTextStyles() и получите доступ к индивидуальному свойству стиля с помощью соответствующих методов (обратите внимание, что вам все равно потребуется доступ к фоновым цветам с помощью метода getBackgrounds(), высота с getHeight() и т. д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...