Gmail> Google App Script> Gsheet> Slack Formatting - PullRequest
0 голосов
/ 25 октября 2018

У меня небольшая проблема с форматированием.Я использую эту программу для отслеживания своих заказов на покупку, и она настроена так, чтобы отправлять мне все заказы на покупку, размещаемые каждый день, и электронная почта выглядит следующим образом: enter image description here

Изатем я настроил лист google со следующим кодом, чтобы перетащить письмо на лист:

var SEARCH_QUERY = "label:inbox is:unread from:[SERVER EMAIL]";

    function getEmails_(q) {
        var emails = [];
        var threads = GmailApp.search(q);
        for (var i in threads) {
            var msgs = threads[i].getMessages();
            for (var j in msgs) {
                emails.push([msgs[j].getBody().replace(/<.*?>/g, '\n')
                    .replace(/^\s*\n/gm, '').replace(/^\s*/gm, '').replace(/\s*\n/gm, '\n')
                ]);
            }
        }
        return emails;
    }

    function appendData_(sheet, array2d) {
        sheet.getRange(sheet.getLastRow() + 1, 1, array2d.length, array2d[0].length).setValues(array2d);
    }

    function saveEmails() {
        var array2d = getEmails_(SEARCH_QUERY);
        if (array2d) {
            appendData_(SpreadsheetApp.getActiveSheet(), array2d);
        }
    }

Это прекрасно работает для импорта данных, но, к сожалению, все это в ячейку A2, и выглядит так:

enter image description here

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

function triggerSlackRequestProgress(channel, msg) {
 var slackWebhook = "[SLACK WEBHOOK]";
  var payload = { "channel": channel, "text": msg, "link_names": 1, "username": "Email Test", "icon_emoji": ":cowboykeen:" };
 var options = { "method": "post", "contentType": "application/json", "muteHttpExceptions": true, "payload": JSON.stringify(payload) };

Logger.log(UrlFetchApp.fetch(slackWebhook, options));
}

function notifySlackChannelOfProgress() {
 var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
 if (!sheet.getRange("A2").getValue()) return;
var channel = getChannel();

var msg = createProgressMessage(sheet);
 triggerSlackRequestProgress(channel, msg);
}

function isTest() {
 return false;
}

function getChannel() {
 if(isTest()) {
 return "[SLACK CHANNEL]";
 } else {
 return "[SLACK CHANNEL]";
 }
}

, и он выглядит так:

enter image description here

Но чтоЯ бы предпочел, чтобы иметь возможность редактировать его больше, чтобы выглядеть так.Где Дата заказа, Запрошенный, Описание и т. Д. Находятся в отдельных ячейках, так что я могу отформатировать это:

enter image description here

Любая помощь с его будетс благодарностью

...