【发布时间】:2021-08-27 11:01:04
【问题描述】:
我会根据电子邮件正文中的交易数据收到银行关于每笔交易的电子邮件,请参见下面的示例。
现在,我想在电子表格中分离要传输的数据,例如分支代码旁边的值应该在 A 列的最后一行,分支代码在 B 列,Slip no 在 C 列,等等。
下面是我尝试的代码:
//function to seprate and filter data
function parseEmail(message){
let parsed = message.replace(/Branch Code /g,'')
.replace(/Branch Name /g,'')
.replace(/Slip No /g,'')
.replace(/\n*.+:/g,',')
.replace(/^,/,'')
.replace(/\n/g,'')
.split(',');
let result = [0,1,2,3,4,6].map(index => parsed[index]);
Logger.log(result[0]);
return result;
}
// main function to search email
function testforemails0003(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Emails");
var Gmail = GmailApp;
var lasttime = sheet.getRange("Z1").getValue();
Logger.log(lasttime);
var cdate = new Date();
var ctime = cdate.getTime();
var qDate = sheet.getRange("Z3").getValue();
Logger.log("QDATE IS " + qDate);
// SEARCH EMAIL
var query = 'subject: subject, after:' + Math.floor((qDate.getTime()) /1000);
var threadsNew = Gmail.search(query);
Logger.log(threadsNew.length);
//loop all emails
for(var n in threadsNew){
var thdNew = threadsNew[n];
var msgsNew = thdNew.getMessages();
var msgNew = msgsNew[msgsNew.length-1];
// GET ATTACHMENT
var bodyNew = msgNew.getBody();
var plainbody = msgNew.getPlainBody();
var subject = msgNew.getSubject();
var Etime = msgNew.getDate();
var attachments = msgNew.getAttachments();
var attachment = attachments[0];
Logger.log(Etime);
Logger.log(subject);
parseEmail(plainbody);
}
Logger.log(threadsNew.length);
var lastscantime = threadsNew[0].getLastMessageDate();
var lastsubject = threadsNew[0].getFirstMessageSubject();
Logger.log(lastscantime);
Logger.log(lastsubject);
sheet.getRange("z3").setValue(lastscantime);
}
问题是我希望将所有值放在一个单独的数组中,所以将它们放在单独的列中。
我的输出是一个数组中的所有值,我希望将所有字段分开设置在电子表格中。
我的输出是:
[0123
abc BR KARACHI
Slip No 0000242
BL Number abc123456789
Type Of Payment 04
Customer Name abc corporation
Payer Bank
Payer Bank Branch
Transaction Type Cheque
Amount 100, 000.00
Posting Date 27-08-2021
Value Date 27-08-2021
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo
ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis
parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pretium quis]
【问题讨论】:
-
您的代码返回什么以及您希望它看起来像什么?
-
我的代码在一个数组中返回我的电子邮件正文的输出,我希望全部在单独的数组中
-
如果您希望我能够提供帮助,我需要查看两者的结构。您可以编辑任何私人数据,但结构必须显而易见,最好粘贴为代码而不是屏幕截图
-
好的,让我创建一个虚拟数据电子邮件并与您分享。
-
您能否分享一下您所期望的最终结果的结构? @MehdiAbbas
标签: google-apps-script automation gmail spreadsheet