Импортируйте zipdata (CSV) из gmail в таблицу Google - PullRequest
0 голосов
/ 20 марта 2019

Я пытаюсь создать электронную таблицу Google, которая автоматически импортирует содержимое вложенного ZIP-файла из папки входящих сообщений gmail (помеченной как test). Я абсолютно не кодер, но я попытался скопировать вставить некоторые рабочие биты скрипта Google. Я получаю ошибку «неверный аргумент» в строке 26 (var extract = Utilities.unzip (csv);)

Спасибо заранее!

function getCSV() {


var query = "label:test";

var threads = GmailApp.search(query);
Logger.log('threads len ' + threads.length);

Logger.log(query);

for (var i = 0; i < threads.length; i++) {
var messages = threads[i].getMessages();
Logger.log(messages);    
for (var m = 0; m < messages.length; m++) {
   var supportStats = [];


var msgs = GmailApp.getMessagesForThreads(threads);
   Logger.log(msgs);
var attachments = msgs[0][0].getAttachments();
   Logger.log(attachments);



var csv =  attachments[0];
var extracted = Utilities.unzip(csv);
var string = extracted[0].getDataAsString(); //INVALID ARGUMENT ERROR
var data = Utilities.parseCsv(string);


var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("import");
sheet.clearContents();
var range = sheet.getRange(1,1, data.length,data[0].length);
range.setValues(data);


}}}

1 Ответ

0 голосов
/ 21 марта 2019

Из сообщения об ошибке я подумал, что в BLOB-файле вложения может быть неправильный mimeType (это application/x-zip или другие?) Для использования Utilities.unzip(). Так как насчет этой модификации?

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

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

От:
var csv =  attachments[0];
Для того, чтобы:
var csv =  attachments[0].setContentTypeFromExtension();

или

var csv =  attachments[0].setContentType("application/zip");

Примечание:

  • Исходя из вашего сценария и вопроса, эта модификация предполагает, что attachments[0], полученный из msgs[0][0].getAttachments(), является BLOB-файлом zip-файла. Если это не zip-файл, измените скрипт.

Ссылки:

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

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