用于删除Google表单中表单选项的空字符串的脚本

时间:2015-11-05 15:08:06

标签: javascript google-sheets

我在摆脱空字符串方面遇到了重大问题,以便从Google电子表格中填写Google表单的选项。脚本的其余部分工作得很好,但它不断向表单添加空选项(见图)。我已经尝试过下面的脚本,但它仍然无效。试图添加" undefined"作为" if"下的一个选项" ChoicesForQuestions"只给我一个答案,而不是电子表格中该行的其他答案。请帮我解决这个问题。

function CreateFormfromSheet() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var range = ss.getDataRange(); 
 var data = range.getValues();
 var numberRows = range.getNumRows();
 var numberColumns = range.getNumColumns();
 var firstRow = 1;
 var form = FormApp.create(data[0][1]);
 form.setDescription(data[1][1]);
 form.requiresLogin(); 

 for(var i=0;i<numberRows;i++){
  var questionType = data[i][0]; 
  if (questionType==''){
   continue;
   }

else if(questionType=='CHOICE'){
 var currentRow = firstRow+i;
 var getSheetRange = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getDataRange().getLastColumn();
 var lastColumnInRange = String.fromCharCode(64 + (getSheetRange));
 var range_string = 'D' + currentRow + ":" + lastColumnInRange + currentRow;
 var optionsArray = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(range_string).getValues();

 var choicesForQuestion =[];
 for (var j=0;j<optionsArray[0].length;j++){
  if (optionsArray[j] !== null && optionsArray[j] !== "") {
    choicesForQuestion.push(optionsArray[0][j]);
    }
  }

form.addMultipleChoiceItem()
.setTitle(data[i][1])
.setHelpText(data[i][2])
.setChoiceValues(choicesForQuestion)
.setRequired(true); 
 }
}

Google Form with empty options

enter image description here

1 个答案:

答案 0 :(得分:0)

Toni W在我的文字下面的评论中提到了这个问题。我需要在if语句中的[j]之前添加[0]。