2009-09-08 82 views
3

我想創建一個表單,使用電子表格中的數據,以便它是動態的。是否有可能做到這一點?我無法找到任何描述如何或任何示例的地方。是否可以從谷歌電子表格填充谷歌表單?

所有似乎可能的是從表單填充電子表格,我也將使用它,但它不是這裏主要關心的問題。

+0

您可以將Google文檔標記添加到此 – Parker 2009-12-08 17:02:00

+0

完成。經過更多的研究似乎這是不可能的,這是一個很大的恥辱。它可能正在其途中。 – George 2009-12-09 01:40:09

+0

我刪除了google-docs標籤,因爲目前這是針對有關文字處理應用程序的問題。 – 2016-10-10 14:59:35

回答

0

目前有一項功能要求我們添加一個表單API,允許您爲電子表格創建,檢索,更新和刪除表單。儘管此時此功能不存在,但如果此時功能不存在,則可以使用Forms API和Spreadsheets Data API鏈接電子表格數據以形成數據。 feature request is here

+0

感謝您通知我這個vicfryzel。有沒有這種功能的任何時間表?我不再追求需要這個功能的項目,但是我對它的開發非常感興趣。我已經給出了要求。 – George 2010-04-07 12:13:06

+0

現在可以通過編程方式創建表單。 – 2016-10-10 14:57:24

3

是的。使用表單腳本並使用FORM OPEN上的觸發器更新電子表格中的信息。下面是一個例子,它從兩張不同的工作表中獲取數據,並將數據插入組合框和多選控件。

function getNewNames(){ 
    var form = FormApp.getActiveForm(); 
    var items = form.getItems(); 

    var ss = SpreadsheetApp.openByUrl(
    'https://docs.google.com/spreadsheets/d/YOURDOCSNAMEHERE/edit'); 
    var assSheet1 = ss.getSheetByName('Sheet1'); 
    var assValues = assSheet1.getDataRange().getValues(); 
    var values = assValues.slice(1); 
    var valSort = values.sort(); 

    var ss2 = SpreadsheetApp.openByUrl(
    'https://docs.google.com/spreadsheets/d/DOCSNAMEHERE/edit'); 
    var playerSheet1 = ss2.getSheets()[0]; 
    var playerValues = playerSheet1.getDataRange().getValues(); 
    var player = playerValues.slice(0); 
    var plySort = player.sort(); 

    var names = []; 

    for(var p = 0; p < plySort.length; p++){ 
    names.push(plySort[p][0]) 
    } 

    var pList = items[0].asListItem(); 
    pList.setChoiceValues(names).setRequired(true).setHelpText('Please Select Player Name') 

    var areas = []; 
    for (var i = 0; i < valSort.length; i++) { 
     areas.push(valSort[i][1]) 
    } 

    var aList = items[1].asMultipleChoiceItem(); 
     aList.setChoiceValues(areas).setRequired(true).setHelpText('Select Area of Assessment') 

} 
1

你可能想看看FormRanger plugin。它不會填充表單的問題,但會動態地填充多選題,列表或網格問題中的可能答案。它甚至可以將數據從以前的表單響應中提取出來。它可以設置爲在每次提交或每小時後自動更新。 請注意:如果您根據問題的答案使用過濾器問題重定向到不同的部分,則不能使用Formranger解決這些問題,因爲它會破壞重定向。