从Google表单创建动态Google群组更新

时间:2016-04-07 06:19:35

标签: google-sheets google-groups

只是为此寻找最后一段代码。我目前使用以下代码从表单回复表中提取联系信息并自动添加到现有组。

我将在每次表单完成时添加一个触发器来运行,但是我需要将代码更改为仅从最后一行添加信息。否则,它将在每次表单完成时重新添加所有联系人,而不仅仅是最近的条目。

function addContact() {
var sheet = SpreadsheetApp.getActiveSheet();
var dataRange = sheet.getDataRange();
var data = dataRange.getValues();
for (i =0; i<data.length; i++) { 
var column = data[i];
var firstName = column[1]; 
var lastName = column[2];      
var emailAdd = column[3];
var contact = ContactsApp.createContact(firstName, lastName, emailAdd);
var group = ContactsApp.getContactGroup('Group Name');
debugger;
group.addContact(contact);
}
}

任何和所有帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

使用此代码,我想:

function addContact() {
   var sheet = SpreadsheetApp.getActiveSheet();
   var dataRange = sheet.getDataRange();
   var data = dataRange.getValues();
   var LastDataRow = data[data.length - 1];
   var firstName = LastDataRow[1]; 
   var lastName = LastDataRow[2];      
   var emailAdd = LastDataRow[3];

   // and so on...
}

这部分代码:var LastDataRow = data[data.length - 1];为您提供最后一行数据。

答案 1 :(得分:0)

您根本不需要从电子表格中读取数据。

相反,您用于表单提交的事件处理程序可以接收一个包含该特定提交的所有数据的对象。

此处的详细信息:https://developers.google.com/apps-script/guides/triggers/events

最终会看起来像这样:

function addContact(e) 
{
  var contact = ContactsApp.createContact(
    e.namedValues["First Name"].toString(),
    e.namedValues["Last Name"].toString(),
    e.namedValues["email Address"].toString());
  var group = ContactsApp.getContactGroup('Group Name');
  debugger;
  group.addContact(contact);
}