2017-08-08 12 views
1

J'essaie d'obtenir les choix qui ont été entrés dans une grille de multiplechoice de Google Forms. Je peux obtenir les lignes, les colonnes mais pas le choix choisi par rangée.Comment puis-je obtenir la réponse aux questions d'une grille à choix multiples de google forms?

questions in table

function Test_Field() { 

var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var process = ss.getSheetByName("Process TEST"); 
var sheet = ss.getSheetByName("Réponses au formulaire 3"); 
process.activate(); 

process.getRange(1, 1, sheet.getMaxRows(), 
sheet.getMaxColumns()).clearContent(); 

var button = ("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); 
var form = FormApp.openByUrl(button); 
var reps = form.getResponses(); 

var items = form.getItems(); 
var rep = reps[5]; //// I want only work on the 5 respons 

var l = 3; 
for (var i = 0; i < items.length; i++){ 
    var index = items[i].getIndex(); 
    var l = l+3; 
    process.getRange(l+1,1).setValue(i); 
    process.getRange(l+1,3).setValue(index); 
    process.getRange(l+1,3).setValue(items[i].getType()); 

    if(items[i].getType() == "GRID") { 
    process.getRange(l+1,4).setValue("GRID"); 

    var testitem = items[i].asGridItem().getRows(); 
    var testitemcol = items[i].asGridItem().getColumns(); 
    var itemResponses = rep.getItemResponses(); 

    for (iii = 0;iii < testitem.length;iii++){ 
    var itemResponse = itemResponses[iii]; 
    process.getRange(l+1,iii+6).setValue(itemResponse); 
    process.getRange(l+2,iii+7).setValue(testitem[iii]); 
    process.getRange(l+3,iii+7).setValue(testitemcol[iii]); 
              } 
            } 
    if (itemsrep[i] != null) 
    {process.getRange(l+1,5).setValue(itemsrep[i].getResponse())}; 
              } 
} 

Répondre

0

J'utilise ceci: j'ai vérifié si la réponse est venue de la grille que je cherchais le titre de l'article et il lié à la réponse.

//Choose where from come your response 
var formResponse = responses[i]; 
var itemResponses = formResponse.getItemResponses(); 
var items = form.getItems(); 
for (var j = 0; itemResponses.length - 1; j++) { 
    var itemResponse = itemResponses[j]; 
    var tt = itemResponse.getItem().getType(); 
    if (tt = 'GRID') { 
    var gridItmRows = itemResponses[j].asGridItem().getRows(); 
    var gridResponse = itemResponses[j].getResponse(); 
    for (var k = 0; k < gridResponse.length; k++){ 
//Set title - row's value 
    sheet.getRange(counter, 1).setValue(gridItmRows[k]); 
//set answer - column's value 
    sheet.getRange(counter, 3).setValue(gridResponse[k]); 
    counter = counter + 1; 
    } 
    } 

Espérons que ça aide.

+0

ne fonctionne toujours pas. Dans le fichier journal j'ai "réponse # 6 à la question" Vraagjes "était" [Ja, Neen, Neen, null, Ja, null, Neen, null, Neen, null, null] ". Donc, je voudrais avoir ces valeurs comme j'ai eu les titres par "var testitem = articles [i] .asGridItem(). getRows();" – bacbgox

+0

[Ja, Neen, Neen, nul, Ja, null, Neen, null, Neen, null, null] est un tableau de chaînes que vous pouvez obtenir par gridResponse = itemResponses [k] .getResponse(); où itemResponses = formResponse.getItemResponses(); après cela, vous pouvez utiliser gridResponse [i] pour obtenir des réponses (valeurs de colonne). , Je suis en train d'éditer maintenant – InnaS

+0

merci, enfin je l'ai fait d'une autre manière, mais je garde ta réponse pour la prochaine fois – bacbgox