【发布时间】:2016-08-16 16:38:03
【问题描述】:
我是谷歌应用脚本的新手。我正在尝试编写一个 google 应用程序脚本,该脚本将从 gmail 中获取一个表格并将数据放入 google 表格中。
邮件正文有点像下面
CONFIRMATION CODE GUEST'S NAME GUEST'S EMAIL GUEST'S PHONE
A1 Name someone@gmail 012377777
到目前为止,我已经尝试了以下代码来获取电子邮件中的数据并将其推送到电子表格。
function myFunction() {
var ss = SpreadsheetApp.getActiveSheet();
var label = GmailApp.getUserLabelByName("[Gmail]/test");
var threads = label.getThreads();
for (var i=0; i<threads.length; i++)
{
var messages = threads[i].getMessages();
for (var j=0; j<messages.length; j++)
{
var msg = messages[j].getBody();
var sub = messages[j].getSubject();
var dat = messages[j].getDate();
//ss.appendRow([msg, sub, dat])
}
// threads[i].removeLabel(label);
}
}
messages[j].getBody() 给了我以下 html
<u></u>
<div>
<table cellpadding="3" style="font-size:.9em">
<thead>
<tr>
<th>CONFIRMATION CODE</th>
<th>GUEST'S NAME</th>
<th>GUEST'S EMAIL</th>
<th>GUEST'S PHONE</th>
</tr>
</thead>
<tbody>
<tr>
<td>
A1
</td>
<td>
Name
</td>
<td>
someone@gmail
</td>
<td>
012377777
</td>
</tr>
</tbody>
</table>
</div>
接下来我尝试使用以下方法解析它
var msg = threads[0].getMessages();
var rows = Xml.parse(msg[0].getBody(),true).getElement()
.getElement("div")
.getElement("table")
.getElement("tbody")
.getElements("tr");
但这给我抛出了错误“TypeError:无法调用 null 的方法“getElement”。“我对 XML 没有太多经验,所以请你告诉我我在这里做错了什么。 谢谢:)
【问题讨论】:
-
嘿 Waleed,你曾经能够让这个工作吗?我正在尝试做同样的事情,从 GMAIL 导入 HTML 表格。
标签: javascript html excel google-apps-script google-sheets