表单提交后动态更新单元格

时间:2013-03-27 13:26:51

标签: google-apps-script

我正在尝试根据代码创建一个用户列表,简单地说我们有一个系统,我们学校的每个成员都有一个指定的代码,这个代码我可以通过制作一些正则表达式来获取他们的名字和电子邮件在我们的网站上(基本上是数据挖掘)。

我们的想法是只输入此用户代码(假设为0123456),脚本将从网站获取数据并填充相邻的列值。该脚本必须在 on form subit 触发器上运行,因此仅在需要时才会更新。

我已成功实施数据采集系统,但我正在努力填补相邻的单元格。

// this function is called when form is submitted
function onNewEntry(e)
{
  // get the code (cell 0 is the timestamp)
  userCode = e.values[1];

  // add values and return
  return e.values.concat(["name", "e-mail"]);
}

我希望脚本能够用“name”和“e-mail”更改C和D列中的单元格,但没有任何反应。有人可以提供建议吗?

2 个答案:

答案 0 :(得分:1)

当表单提交触发时,此函数将在C列和D列中写入数据

(我用xx和yy来说明)

function myFunction(e) {

var sh = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];

var last = sh.getLastRow()

sh.getRange(last,3,1,2).setValues([['xx','yy']])
}

答案 1 :(得分:0)

Range.setValues([Array])是您的解决方案。注意setValues(...)中的's'。

https://developers.google.com/apps-script/reference/spreadsheet/range#setValues(Object)

另外,我没有对此进行过测试,但我不认为对象(e)是指实际的单元格,而是提交数据的副本。我想如果你想修改或附加到结果,你需要打开工作表并获得范围。