【发布时间】:2015-11-06 19:58:48
【问题描述】:
我每天都会发送一封电子邮件,我需要将数据从 Google 表格中提取出来。我已经阅读了这个并找到了一个适用于其他人的解决方案,但我一直无法让它在我的身上工作。这是我尝试修改的代码:
function menu(e) {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Macros')
.addItem('parse mail', 'email')
.addToUi();
}
function parseMail(body) {
var a=[];
var keystr="First Name : ,Last Name : ,Customer ID : ,Invoice : ";
var keys=keystr.split(",");
var i,p,r;
for (i in keys) {
p=keys[i]+"\n([a-zA-Z0-9\ \,\.]*)\n";
r=new RegExp(p,"m");
try {a[i]=body.match(p)[1];}
catch (err) {a[i]="no match";}
}
}
function email() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getActiveSheet();
var threads = GmailApp.search('subject: "Fwd: ARB Subscription*"');
var a=[];
for (var i = 0; i < threads.length; i++) {
var messages = GmailApp.getMessagesForThread(threads[i]);
for (var j = 0; j < messages.length; j++) {
a[j]=parseMail(messages[j].getPlainBody());
}
}
var nextRow=s.getDataRange().getLastRow()+1;
var numRows=a.length;
var numCols=a.length[0];
s.getRange(nextRow,1,numRows,numCols).setValues(a);
}
我尝试修改代码,但我得到的错误是无法将数组转换为 Object[][] 第 35 行。任何建议将不胜感激
【问题讨论】:
-
很可能
a不是双精度数组,或者某些长度小于其他数组,请登录a以确保。
标签: regex google-apps-script google-sheets gmail