GoogleスプレッドシートのインポートLjava.lang.Objectエラー

Jakesch:

私は仕事にこれを取得するには、いくつかの異なるスクリプトをつなぎ合わせているが、私は正確にデータを置くためのコードを取得するように見える傾けます。

電子メールの入力:

*Status:* 
*Date:* 03/31/2020
*WorkOrder:* 123456-1
*DMSShipDate:* 03/31/2020
*PONumber:* 8675309
*Company:* Test

脚本

var ui = SpreadsheetApp.getUi();
function onOpen(e){

  ui.createMenu("Import Email").addItem("Import Email", "getGmailEmails").addToUi();

}

function getGmailEmails(){  
    if (Session.getActiveUser().getEmail() != "[email protected]"){
        Browser.msgBox("Please log in as [email protected]");
        return;
    }
  var label = GmailApp.getUserLabelByName("ImportMe");
  var threads = label.getThreads();

  for(var i = threads.length - 1; i >=0; i--){
    var messages = threads[i].getMessages();

    for (var j = 0; j <messages.length; j++){
      var message = messages[j];
      extractDetails(message);
      GmailApp.markMessageRead(message);
    }
    threads[i].removeLabel(label);

  }

}

function extractDetails(message){
    var bodyContents = message.getPlainBody();
    var status = bodyContents.match(/\*Status:\*(.*) /);
    var dateEntered =  bodyContents.match(/\*Date:\*(.*) /);
    var workOrder = bodyContents.match(/\*WorkOrder:\*(.*) /);
    var dmsShipDate =  bodyContents.match(/\*DMSShipDate:\*(.*) /);
    var poNum =  bodyContents.match(/\*PONumber:\*(.*) /);
    var company =  bodyContents.match(/\*Company:\*(.*) /);

  var activeSheet = SpreadsheetApp.getActiveSheet();
  activeSheet.appendRow([status, dateEntered, workOrder, dmsShipDate, poNum, company]);
}

結果:

I get the following in each column:
[Ljava.lang.Object;@488e1851, [Ljava.lang.Object;@5c588720, etc, etc

IこれにはJSON.stringifyとのtoString()を試してみましたが、何も正しく列にデータを取得することができていないようにみえます。

それらアスター:

String.matchを返しますarrayキャプチャグループを取得するには、その配列のインデックス:

bodyContents.match(/\*Status:\*(.*) /)[1];

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=377895&siteId=1