对于CheckboxItem问题,这将返回一个包含响应者选择的String []数组。数组中字符串的顺序可能会有所不同。
我具有导入Google表单答案的功能。它具有各种项目,有些是复选框,有些是段落。这些答案是在电子表格上设置的。
此功能的问题在于,对于复选框(可进行多个检查)的项目,仅导入一个已检查的答案,而我需要它们全部。
所以我尝试了以下代码,但是ver响应不是开发者网站所说的数组,否则我错了:
function leer()
{
//Definições iniciais da planilha
var spreadsheet = SpreadsheetApp.getActive();
var DB = SpreadsheetApp.getActive().getSheetByName("REPXT").getRange("A2:D");
var datos = SpreadsheetApp.getActive().getSheetByName("REPXT").getRange("A2:D500").getValues();
var base = SpreadsheetApp.getActive().getSheetByName("Base de datos REPXT");
//Obter dados do formulário
for(var i=0;i<SpreadsheetApp.getActive().getSheetByName("REPXT").getMaxRows() +1; i++)
{
if(datos[i][3]!="Importado"&&datos[i][2]!=""){
var idg= datos[i][2]
var form = FormApp.openById(idg);
var formResponses = form.getResponses();
var quant_resp = formResponses.length;
//Buscar todas las respuestas
for( var j = 0; j < quant_resp ; j++ )
{
//Obter dados do formulário
var linhaform = formResponses[j];
var linharesponses = linhaform.getItemResponses();
//Inserir no BANCO R2 - NOMBRE - e na aba AUX_LEER
var inicio= base.getLastRow() + 1 ;
base.getRange(inicio, 2).setValue(datos[i][0]);
var l=3;
for (var k=0;k<linharesponses.length;k++){
var itemResponse = linharesponses[k];
base.getRange(inicio, l).setValue(linharesponses[k].getItem().getTitle());
if(itemResponse.getItem().getType()== FormApp.ItemType.CHECKBOX){
var response = itemResponse.getResponse();
for (var m = 0; m < response; ++m) {
base.getRange(inicio, l+m+1).setValue(response[m]);
}
l=l+1+chkItem.getChoices().length;
}
else { base.getRange(inicio, l+1).setValue(linharesponses[k].getResponse());
l=l+2;
}
}
SpreadsheetApp.getActive().getSheetByName("REPXT").getRange(i+2,4).setValue("Importado");
}
}
}
}
您能帮我获得checkboxItem上选中的所有选项吗?
提前感谢。
作为简单的修改,如果您的脚本被修改,那么该修改如何?