Gmail> Скрипт приложения Google> Gsheet> Форматирование Slack

У меня небольшая проблема с форматированием. Я использую эту программу для отслеживания своих заказов на покупку, и я настроил ее, чтобы отправлять мне все заказы на покупку, размещенные каждый день, а электронное письмо выглядит следующим образом: Gmail> Скрипт приложения Google> Gsheet> Форматирование Slack

А затем я настроил лист 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 и выглядит так:

Gmail&gt; Скрипт приложения Google&gt; Gsheet&gt; Форматирование Slack

Есть ли способ сделать так, чтобы это было больше похоже на сетку в электронном письме? Когда я помещаю его в слабину, у него нет возможностей форматирования, потому что все это в одной ячейке. Вот код, который я использую, чтобы вставить это в 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]";
 }
}

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

Gmail&gt; Скрипт приложения Google&gt; Gsheet&gt; Форматирование Slack

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

Gmail&gt; Скрипт приложения Google&gt; Gsheet&gt; Форматирование Slack

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

@Tanaike Есть идеи для этого? Я очень признателен за вашу помощь с моим последним вопросом. Спасибо!

Ricky Adams 25.10.2018 21:10

В вашем скрипте array2d, полученный getEmails_(SEARCH_QUERY), используется для помещения в электронную таблицу. В это время значения помещаются в одну ячейку. Думаю, что решение вашего вопроса в getEmails_(). Но я не могу предложить прямого решения вашего вопроса из-за отсутствия данных. Можете ли вы подтвердить это и изменить сценарий? Мне очень жаль, что я не умею.

Tanaike 26.10.2018 00:11

@Tanaike, спасибо! Не нужно извиняться, я очень ценю любую помощь, которую могу получить! Помогло бы, если бы я разместил лист Google?

Ricky Adams 26.10.2018 00:29

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

Tanaike 26.10.2018 00:40

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

Ricky Adams 26.10.2018 17:00

Спасибо за ответ. Я не могу получить доступ к общей таблице. Не могли бы вы это подтвердить?

Tanaike 27.10.2018 01:00
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
6
170
0

Другие вопросы по теме