2017-05-14 249 views
0

我想从Google表单提交中调用用户电子表格功能来更新电子表格中的某些信息。从Google表单脚本运行电子表格功能

所有的脚本都在同一个谷歌驱动器上。

有没有办法做到这一点?

在我的谷歌形式

代码:

function updateSheet() { 
    spreadsheet = SpreadsheetApp.openById('daedaeddea'); 
    spreadsheet.myFunction(); 
} 

function onOpen() { 
var form = FormApp.openById('deadeadaedae'); 
ScriptApp.newTrigger('updateSheet') 
    .forForm(form) 
    .onFormSubmit() 
    .create(); 
} 
+1

电子表格附形式有'onFormSubmit'触发可用于运行一个脚本。从电子表格中调用它,而不是表单。 – Brian

+0

在我的情况下,它不是附有表格的电子表格。电子表格与表单无关。 – eleandar

+0

“用户电子表格功能”是什么意思? –

回答

0

可以肯定谷歌表单与电子表格连接。有关Quickstart: Managing Responses for Google Forms中的示例,了解如何使用onFormSubmit触发器执行此操作。

这里有一个片段:

function onFormSubmit(e) { 
    var user = {name: e.namedValues['Name'][0], email: e.namedValues['Email'][0]}; 

    // Grab the session data again so that we can match it to the user's choices. 
    var response = []; 
    var values = SpreadsheetApp.getActive().getSheetByName('Conference Setup') 
    .getDataRange().getValues(); 
    for (var i = 1; i < values.length; i++) { 
    var session = values[i]; 
    var title = session[0]; 
    var day = session[1].toLocaleDateString(); 
    var time = session[2].toLocaleTimeString(); 
    var timeslot = time + ' ' + day; 

    // For every selection in the response, find the matching timeslot and title 
    // in the spreadsheet and add the session data to the response array. 
    if (e.namedValues[timeslot] && e.namedValues[timeslot] == title) { 
     response.push(session); 
    } 
    } 
    sendInvites_(user, response); 
    sendDoc_(user, response); 
} 
+0

似乎我们无法从Google表单脚本调用用户电子表格脚本。您必须重写在Google表单脚本中操纵电子表格的代码。 – eleandar

相关问题