我正在尝试构建一个Google电子表格,该电子表格会自动从我的gmail收件箱(标记为测试)中导入附件.zip的内容。我绝对不是编码人员,但我尝试复制粘贴Google脚本的一些有效位。我在第26行收到“无效参数”错误(提取的变量= 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);
}}}
答案 0 :(得分:0)
从错误消息中,我认为附件文件的blob可能使用application/x-zip
的mimeType错误(它是Utilities.unzip()
还是其他?)。那修改呢?
请进行如下修改。
从:var csv = attachments[0];
至:
var csv = attachments[0].setContentTypeFromExtension();
或
var csv = attachments[0].setContentType("application/zip");
attachments[0]
检索到的msgs[0][0].getAttachments()
是zip文件的blob。如果这不是zip文件,请修改脚本。如果我误解了您的问题,而这不是您想要的结果,我深表歉意。