2009-09-08 10 views
3

Я хотел бы создать форму, которая использует данные из электронной таблицы, чтобы она была динамической. Можно ли сделать это? Я не смог найти нигде, где описывается, как или какие-либо примеры.Возможно ли заполнить форму google из электронной таблицы google?

Все, что кажется возможным, состоит в том, чтобы заполнить электронную таблицу из формы, которую я также буду использовать, но это не главная проблема здесь.

+0

вы можете добавить тег google-docs к этому – Parker

+0

Готово. После дальнейших исследований кажется, что это невозможно, что является большим стыдом. Скорее всего, это на пути. – George

+0

Я удалил тег google-docs, потому что в это время он задает вопросы о приложении для обработки текстов. –

ответ

0

В настоящее время существует запрос функций для добавления API форм, который позволит вам создавать, извлекать, обновлять и удалять форму для электронной таблицы. Хотя на данный момент функциональность не существует, если и когда это произойдет, вы сможете связать данные электронной таблицы с данными, используя API форм и API данных электронных таблиц. feature request is here.

+0

Спасибо, что уведомил меня об этом vicfryzel. Есть ли какая-то временная шкала для этой функции? Я больше не преследую проект, требующий этой функции, но я очень заинтересован в его развитии. Я снял эту просьбу. – George

+0

Теперь можно создать форму программно. –

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 для этих вопросов, так как это нарушит переадресацию.