Как заполнить таблицу HTML, используя таблицу из электронной таблицы? - PullRequest
2 голосов
/ 21 января 2020

Итак, у меня есть простая таблица из 4 столбцов со строками, которые будут добавлены функцией. Я хотел бы создать и html тело, которое будет включать в себя таблицу и получать по электронной почте 3 раза в неделю, используя скрипт Google. Я могу получить данные из электронной таблицы и в переменную. Проблема в том, что я не могу превратиться в чертову таблицу, я знаю, что это, вероятно, простое решение, но я совершенно новичок в скрипте Google. Это мой сценарий;

function emailsLeanKitchen() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var Sheet = ss.getSheetByName("Sheet1");
   var dataTable = Sheet.getRange(1,1,Sheet.getLastRow(),4).getValues();
  Logger.log(dataTable);
  GmailApp.sendEmail("my email","subject", dataTable);//
}

И если кто-нибудь знает о хорошем способе установки этого сценария по таймеру, это было бы здорово, потому что это моя следующая цель. Я приложил ссылку к моей таблице. Я ценю любую помощь!
https://docs.google.com/spreadsheets/d/1X_UcqyXXRMyjZ2j46TymMrIMWvt19HOZTTaEUlIVqwE/edit?usp=sharing

1 Ответ

2 голосов
/ 21 января 2020
  1. Вы хотите создать таблицу HTML из значений, извлеченных из активной электронной таблицы, и хотите отправить ее в виде тела HTML с помощью скрипта Google Apps.
  2. Вы хотите запустить сценарий с помощью запускаемого по времени триггера.

Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.

Ответ за Q1:

Когда ваш скрипт модифицирован, он выглядит следующим образом.

Модифицированный скрипт:

From:
GmailApp.sendEmail("my email","subject", dataTable);//
To:
var htmlTable = dataTable.reduce(function(s, e) {
  return s += "<tr><th>" + e.join("</th><th>") + "</th></tr>"
}, "<table border=\"1\">") + "</table>";
GmailApp.sendEmail("my email","subject", "sample text body", {htmlBody: htmlTable});
  • В этом случае htmlTable отправляется как тело HTML. "sample text body" отправляется как текстовое тело. В этом случае, когда почтовый клиент не может прочитать тело HTML, отображается текстовое тело.

Ответ для Q2:

Вы можете запустить функцию emailsLeanKitchen() с помощью управляемый временем триггер Вы можете увидеть, как установить триггер на здесь . В этом случае из 3 times per week вашего вопроса «Недельный таймер» может подойти для «Выберите тип триггера на основе времени». Об этом, пожалуйста, установите это для вашей реальной ситуации.

Ссылки:

Если я неправильно понял ваш вопрос, и это не то направление, в котором вы хотите, я приношу свои извинения.

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