2017-07-08 59 views
1

這是我的第一個問題,我感到緊張。將單元格值中的電話號碼與Google通訊錄匹配,並獲取全名和地址

在這裏,我試圖從谷歌聯繫人獲取客戶全名和地址。但它不起作用。尋找專家幫助

function importContact() { 
    var s = SpreadsheetApp.getActiveSheet(); 
    if(s.getName() == "Stock") { 
    var r = s.getActiveCell(); 
    var phone = r.getValue() 
    if(r.getColumn() == 10) { 
     var nextCell1 = r.offset(0, 1); 
     var nextCell2 = r.offset(0, 2); 
     var contacts = ContactsApp.getContactsByPhone(phone,'Other'); 
    for(var i = 0, iLen = contacts.length; i < iLen; i++) { 
    var fullname = contacts[i].getFullName(); 
    var address = contacts[i].getAddresses(ContactsApp.Field.HOME_ADDRESS); 
    if(fullname) { 
     nextCell1.setValue(fullname); 
     nextCell2.setValue(address); 
    } else { 
     nextCell1.setValue('New Customer'); 
    } 
    } 
} 
} 
} 

非常感謝您

+1

你運行調試程序?也許你會遇到領先0的問題?你有沒有檢查你需要改變數字來讓它們匹配? –

+1

運行代碼後,選擇「View」菜單,然後選擇「Execution Transcript」。在底部,它說明代碼是否完成。如果沒有完成,它將指出代碼失敗的行。像這樣的信息將有助於我們。另外,請點擊以下鏈接並閱讀[故障排除指南](https://developers.google.com/apps-script/guides/support/troubleshooting)或者從代碼編輯器中選擇「幫助」,然後選擇「文檔」並搜索「麻煩」 –

回答

0

解決方案#1似乎沒有完全工作,所以調試和修改,直到:

  • 它確實證實了「新客戶」的事件,並
  • 工作了地址。

試圖評論庫珀的一個,但沒有足夠的聲譽。希望這是好的,如果需要,我準備清除我的回覆。

上的代碼的幾個注意事項:

  • 它假定任何接觸有一個名字領域,但它可能不會總是如此;
  • 它檢查地址字段是否存在,因爲它比名稱字段更可能是空的;
  • 如果地址不存在,代碼在地址單元中輸入N.A.;
  • var address = addresses[0].getAddress()是第一個解決方案中的主要缺失環節,顯然;
  • 除原始提問者以外的其他用戶應使用相應的工作表名稱替換if(s.getName() == "Stock")中的「庫存」。

應該很明顯,現在:我是學習者,而不是專家。任何改善建議都是值得歡迎的。

function importContact() 
 
{ 
 
    var ss=SpreadsheetApp.getActiveSpreadsheet(); 
 
    var s = ss.getActiveSheet(); 
 
    if(s.getName() == "Stock") 
 
    { 
 
    var r = s.getActiveCell(); 
 
    var phone = r.getValue(); 
 
    if(r.getColumn() == 1) 
 
    { 
 
     var nextCell1 = r.offset(0, 1); 
 
     var nextCell2 = r.offset(0, 2); 
 
     var contacts = ContactsApp.getContactsByPhone(phone); 
 
     if(contacts.length == 0) 
 
     { 
 
     nextCell1.setValue('New Customer');   
 
     } 
 
     else 
 
     { 
 
     for(var i = 0; i < contacts.length; i++) 
 
     { 
 
      var fullname = contacts[i].getFullName(); 
 
      nextCell1.setValue(fullname); 
 
      var addresses = contacts[i].getAddresses(ContactsApp.Field.HOME_ADDRESS); 
 
      if (addresses.length == 0) 
 
      { 
 
      nextCell2.setValue("Not Available"); 
 
      } 
 
      else 
 
      { 
 
      var address = addresses[0].getAddress() //this was the missing link in the first solution, apparently 
 
      nextCell2.setValue(address); 
 
      } 
 
     } 
 
     } 
 
    } 
 
    } 
 
}

+0

非常感謝您的大力幫助!它爲我工作! –

+0

真棒,很高興聽到:) –

1

這似乎爲我工作。但我沒有任何聯繫人的地址,所以我無法驗證。

function importContact() 
{ 
    var ss=SpreadsheetApp.getActiveSpreadsheet(); 
    var s = ss.getActiveSheet(); 
    if(s.getName() == "Stock") 
    { 
    var r = s.getActiveCell(); 
    var phone = r.getValue(); 
    if(r.getColumn() == 1) 
    { 
     var nextCell1 = r.offset(0, 1); 
     var nextCell2 = r.offset(0, 2); 
     var contacts = ContactsApp.getContactsByPhone(phone); 
     for(var i = 0; i < contacts.length; i++) 
     { 
     var fullname = contacts[i].getFullName(); 
     var address = contacts[i].getAddresses(); 
     if(fullname) 
     { 
      nextCell1.setValue(fullname); 
      nextCell2.setValue(address); 
     } 
     else 
     { 
      nextCell1.setValue('New Customer'); 
     } 
     } 
    } 
    } 
} 
相關問題