簡體   English   中英

使用Google腳本解析Gmail電子郵件並將其傳遞給Google表格

[英]Parsing Gmail Email using Google Scripting and passing that to Google Sheets

我有一封包含數據的電子郵件。 我想獲取這些數據並將其放入Google表格中。 我的大多數代碼都在工作,唯一的問題是我不那么精通的正則表達式區域。

這是電子郵件的HTML代碼段。

<table class="m_4348561758375603924m_886074067026015045MsoNormalTable" border="0" cellspacing="0" cellpadding="0" width="408" style="width:306.0pt;border-collapse:collapse">
<tbody>
    <tr style="height:31.5pt">
        <td width="196" nowrap style="width:147.0pt;border:solid windowtext 1.0pt;background:yellow;padding:0cm 5.4pt 0cm 5.4pt;height:31.5pt">
            <p class="MsoNormal" align="left" style="text-align:left"><b><span lang="EN-US" style="font-size:24.0pt;font-family:宋體;color:black">Date<u></u><u></u></span></b></p>
        </td>
        <td width="212" nowrap style="width:159.0pt;border:solid windowtext 1.0pt;border-left:none;background:yellow;padding:0cm 5.4pt 0cm 5.4pt;height:31.5pt">
            <p class="MsoNormal" align="left" style="text-align:left"><b><span lang="EN-US" style="font-size:24.0pt;font-family:宋體;color:black">Reset Code<u></u><u></u></span></b></p>
        </td>
    </tr>
    <tr style="height:31.5pt">
        <td width="196" nowrap style="width:147.0pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt;height:31.5pt">
            <p class="MsoNormal" align="left" style="text-align:left"><strong><span lang="EN-US" style="font-size:24.0pt;font-family:宋體;color:black">2017.8.10<u></u><u></u></span></strong></p>
        </td>
        <td width="212" nowrap style="width:159.0pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:31.5pt">
            <p class="MsoNormal" align="left" style="text-align:left"><strong><span lang="EN-US" style="font-size:24.0pt;font-family:宋體;color:black">123456<u></u><u></u></span></strong></p>
        </td>
    </tr>
    <tr style="height:31.5pt">
        <td width="196" nowrap style="width:147.0pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt;height:31.5pt">
            <p class="MsoNormal" align="left" style="text-align:left"><b><span lang="EN-US" style="font-size:24.0pt;font-family:宋體;color:black">2017.8.11<u></u><u></u></span></b></p>
        </td>
        <td width="212" nowrap style="width:159.0pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:31.5pt">
            <p class="MsoNormal" align="left" style="text-align:left"><strong><span lang="EN-US" style="font-size:24.0pt;font-family:宋體;color:black">123456<u></u><u></u></span></strong></p>
        </td>
    </tr>
</tbody>
</table>

我需要的數據是日期為2017.8.10及其代碼為123456。這始終是6個字符,日期成對出現。

這是我的Google腳本代碼。

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Date Code')
      .addItem('Get Codes','DateCode')
      .addToUi();
}

function DateCode() {    
  var sheet = SpreadsheetApp.getActiveSheet();
  var label = GmailApp.getUserLabelByName("Inbox RC");
  var threads = label.getThreads();

  for (var i = 0; i < threads.length; i++) {      
    var tmp,
        message = threads[i].getMessages()[0],
        subject = message.getSubject(),
        content = message.getPlainBody();

    if (content) {    
      tmp = content.match(2017);
      var comment = (tmp && tmp[1]) ? tmp[1] : 'No Code Found!';

      sheet.appendRow([comment]);    
  }
}

注意*收件箱RC是Gmail過濾器將該電子郵件發送到的文件夾。

我需要幫助的地方是tmp = content.match(2017); 在2017年將有我需要的代碼才能獲取代碼和日期。 我會將兩個日期及其代碼提取為兩個dif。 領域。 我可以稍后處理,我只需要在運行此腳本后獲取正確的數據即可。 它會選擇單詞和數字,但不會搜索我想要的內容,因為它會搜索整個文件夾Ibox RC。

您只需要一個正則表達式來匹配您知道的日期格式? 這樣的事情怎么樣: http : //regexr.com/3ghlh

/>(\d{4}\.\d{1,2}\.\d{1,2})<|>(\d+)</g

https://regex101.com/r/qFHLGK/1

這就是正則表達式-您必須在之后將其拆分為對... 如何在JavaScript中將數組拆分為數組對?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM