2017-10-02 16 views
0

私はGmailの検索ラベルを使用して電子メールデータをインポートするためにGoogleのシートで使用されるGoogleのアプリケーションスクリプト(下記参照)を継承しました。このスクリプトはある程度機能していますが、電子メールから第1および第2の名前を抽出することに失敗しています。Gmailの連絡先の名前をGoogleスプレッドシートにインポートするにはどうすればよいですか?

私はGmailApp documentationを検索しましたが、名前のインポートに関してはメールアドレスだけは見つかりませんでした。私はこのスクリプトが名前の抽出に使用されていたことを知っているので、Googleはこの機能を削除しましたか、何か不足していますか?

function onOpen() { 
var sheet = SpreadsheetApp.getActiveSpreadsheet(); 
var clear = [ {name:"Clear Sheet", functionName: "clearSheet"} ]; 
var menu = [ {name: "Import selected emails", functionName: 
"selectedEmails"},]; 
sheet.addMenu("Import Emails", menu); 
sheet.addMenu("Clear Sheet",clear); 
sheet.toast("To get started click on 'Import Emails' option on the 
menubar.", "Ready", 7);  
} 

function selectedEmails(){ 

     var sheet = SpreadsheetApp.getActiveSpreadsheet(); 
     var query=Browser.inputBox("Enter your Gmail search query","",Browser.Buttons.OK_CANCEL);   
     var lastEntry=2; 
     var oldPercentage=0; 
     if(query!="" && query!="cancel"){ 

     var threads = GmailApp.search(query); 

     for (var i = 0; i < threads.length; i++) { 

      var messages = threads[i].getMessages(); 

      for (var j = 0; j < messages.length; j++) { 

      var subject = messages[j].getSubject(); 
      var student_num = studentNum(subject); 

      sheet.getRange("A"+lastEntry).setValue(student_num); 
      sheet.getRange("B"+lastEntry).setFormula("vlookup(A" + lastEntry + ",ids!A:C,2,0)"); 
      sheet.getRange("B"+lastEntry).setValue(sheet.getRange("B"+lastEntry).getValue()); 
      sheet.getRange("C"+lastEntry).setFormula("vlookup(A" + lastEntry + ",ids!A:C,3,0)"); 
      sheet.getRange("C"+lastEntry).setValue(sheet.getRange("C"+lastEntry).getValue()); 
      sheet.getRange("D"+lastEntry).setValue(subject); 

      if(i/threads.length*100-oldPercentage>4){ 
       oldPercentage=i/threads.length*100; 
       sheet.toast(i/threads.length*100+"% completed", "In Progress", 3); 
      } 

      lastEntry+=1; 

      } 

     } 

     sheet.autoResizeColumn(1); 
     sheet.autoResizeColumn(2); 
     sheet.autoResizeColumn(3); 
     sheet.autoResizeColumn(4); 
     sheet.autoResizeColumn(5); 

     sheet.toast("Export completed successfully", "Done", 3); 
    } 
}  


function clearSheet(){ 

//clear the used rows 
var mysheet = SpreadsheetApp.getActiveSpreadsheet(); 
var lastRow = mysheet.getLastRow(); 

/* 
if(lastRow>0){ 
    mysheet.insertRowAfter(lastRow); 
    mysheet.getRange("A1:E"+lastRow).clear(); 
} 
for(i=lastRow;i>0;i--){ 
    mysheet.deleteRow(i); 
} 
*/ 
mysheet.deleteRows(2, LastRow); 

//Initialize the header 
mysheet.getRange("A1").setValue("ID"); 
mysheet.getRange("B1").setValue("Surname"); 
mysheet.getRange("C1").setValue("Forename"); 
mysheet.getRange("D1").setValue("Subject"); 
mysheet.getRange("E1").setValue("Result"); 
mysheet.getRange("A1:E1").setBackground("#bbed95"); 
mysheet.getRange("A1:E1").setFontSize(14); 
mysheet.getRange("A1:E1").setHorizontalAlignment("center"); 
//Initialize the header 

} 

//function to extract Student Numbers 
function studentNum(text){ 
    var pattern=/[0-9]{8}/; 
    var snum = text.match(pattern)*1; 
    return snum; 
} 

答えて

1

が見つかりました。私はそれが呼び出されることを期待していたものではありませんでした。

getFrom()

関連する問題