我經常從銀行收到有關不同基金買賣利率的電子郵件,我想從電子郵件正文中提取基金價值并將它們每天粘貼到我的谷歌表格中以分析它們的漲跌。
到目前為止,我實作的是將電子郵件正文提取為純文本并嘗試使用贊美和正則運算式,但未能僅實作值。
下面是我的代碼。
function NBPFundUpdate(){
// SKIP TO OUT OF OFFICE HOURS AND DAYS
var nowH=new Date().getHours();
var nowD=new Date().getDay();
//Logger.log(nowD);
//Logger.log('day : ' nowD ' Hours : ' nowH)
if (nowH>19||nowH<8||nowD==0) { return }
//if (nowH>17||nowH<8||nowD==6||nowD==0) { return }
var sourceSpreadsheet = SpreadsheetApp.getActive();
var sourceSheet = sourceSpreadsheet.getActiveSheet();
// START OPERATION
var Gmail = GmailApp;
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var MasterSheet = ss.getSheetByName("Master");
var index = 2;
var aa = 0;
var na = 0;
// SEARCH EMAIL
var query = 'from: [email protected], subject: NBP FUNDS NAV';
var threadsNew = Gmail.search(query);
Logger.log(threadsNew.length);
//check if thread found or not
if (threadsNew.length ==0) { return }
var lastscantime = threadsNew[0].getLastMessageDate();
var master = ss.getSheetByName("Master");
master.getRange("Z1").setValue(lastscantime);
Logger.log(lastscantime);
//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();
Logger.log(Etime);
Logger.log(subject);
Logger.log(plainbody);
var NGSLFbuying = /NBP GOVERNMENT SECURITIES LIQUID FUND\n(.*?)$/gm.exec(plainbody);
Logger.log(NGSLFbuying);
var NGSLFSelling = /NBP GOVERNMENT SECURITIES LIQUID FUND\n(.*?)$/gm.exec(plainbody);
Logger.log(NGSLFSelling);
}
}
Logger.log(plainbody) 的結果;在下面。

Logger.log(NGSLFbuying) 的結果;為空見下圖截圖

供您參考,我希望最終結果在我的谷歌電子表格中看起來像這樣;

如果有人幫助我實作這一目標,將非常感謝他/她。
uj5u.com熱心網友回復:
您正在使用\n但價格之前沒有換行符。
const plainbody = `something before
NBP GOVERNMENT SECURITIES LIQUID FUND 1 2
something after`;
const [line, buy, sell] = /NBP GOVERNMENT SECURITIES LIQUID FUND (.*?) (.*?)$/gm.exec(plainbody);
console.log(line);
console.log(buy);
console.log(sell);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/477097.html
標籤:javascript 谷歌应用脚本 谷歌表格 邮箱 数据提取
下一篇:計算超過24小時的小時費率
