Импортируйте CSV-вложение в листы Google - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь получить содержимое вложения CSV для вывода на Google Sheets.Не знаю, правильно ли я это делаю, но я нашел это онлайн, запустил, и тогда ничего не происходит.

function importCSVFromGmail() {
    var threads = GmailApp.search("from:cbuffone123@gmail.com");
    var message = threads[0].getMessages()[0];
    var attachment = message.getAttachments()[0];

    // Is the attachment a CSV file
    if (attachment.getContentType() === "text/csv") {
        var sheet = SpreadsheetApp.getActiveSheet();
        var csvData = Utilities.parseCsv(attachment.getDataAsString(), ",");

        // Remember to clear the content of the sheet before importing new data
        sheet.clearContents().clearFormats();
        sheet.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);
    }
}

1 Ответ

0 голосов
/ 25 сентября 2018

В моей среде я подтвердил, что при получении прикрепленного файла *.csv из электронного письма mimeType извлекается как application/vnd.ms-excel.Я думаю, что причина «ничего не происходит» заключается в следующем.Так как насчет этих модификаций?Я думаю, что есть несколько обходных путей для вашей ситуации.Поэтому, пожалуйста, подумайте об этих модификациях как о 3 из них.

Точки изменения:

  • Шаблон 1: Установите mimeType из имени файла.
  • Шаблон 2: Используйте mimeTypeкак application/vnd.ms-excel
  • Шаблон 3: Используйте расширение.

Шаблон 1:

Пожалуйста, добавьте следующий скрипт перед if (attachment.getContentType() === "text/csv") {.

attachment.setContentTypeFromExtension();

Шаблон 2:

Пожалуйста, измените следующим образом.

С:
if (attachment.getContentType() === "text/csv") {
Кому:
if (attachment.getContentType() === "application/vnd.ms-excel") {

Шаблон 3:

Пожалуйста, измените следующим образом.

From:
if (attachment.getContentType() === "text/csv") {
To:
var fileName = attachment.getName().toUpperCase().split(".");
if (fileName.length > 1 && fileName[1] == "CSV") {

Примечание:

  • Для шаблона 1 mimeType устанавливается из расширения имени файла с помощью setContentTypeFromExtension().
  • Что касается шаблона 2, если в вашей среде CSV-файлы извлекаются как другие mimeType, измените application/vnd.ms-excel.
  • Для шаблона 1 и 3, если имя файла CSV-файла не имеет расширения или другого расширения, ононе может использоваться в данной ситуации.

Ссылка:

IЕсли бы это было не то, что вы хотите, извините.

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