【发布时间】:2017-04-28 01:52:04
【问题描述】:
我创建了一个谷歌电子表格来自动转换成谷歌表单,所以我不必手动将所有问题输入谷歌表单。
我正在编写谷歌应用程序脚本并设法得到所有问题。我试图根据工作表的第一列将表单分成几个部分。因此,如果第一列是“1”,则对应的问题应该在第一部分,如果是“2”,则应该创建另一个部分。依此类推。
我该怎么做?代码是什么?我已将谷歌表附在此处Google spreadsheet
function myFunction()
{
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
var range = ss.getDataRange();
var data = range.getValues();
var numberRows = range.getNumRows();
var numberColumns = range.getNumColumns();
var firstRow = 1;
var form = FormApp.openById('1hIQCLT_JGLcvjz44vXTvP5ziia6NnwCqWBxYT4h2uCk');
var items = form.getItems();
var ilength = items.length;
for (var i=0; i<items.length; i++)
{
form.deleteItem(0);
}
for(var i=0;i<numberRows;i++)
{
Logger.log(data);
var questionType = data[i][0];
if (questionType=='')
{
continue;
}
//choose the type of question from the first column of the spreadsheet
else if(questionType=='1')
{
var rowLength = data[i].length;
var currentRow = firstRow+i;
var currentRangeValues = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1').getRange(currentRow,1,1,rowLength).getValues();
var getSheetRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1').getDataRange();
var numberOfColumnsSheet = getSheetRange.getNumColumns();
var numberOfOptionsInCurrentRow = numberOfColumnsSheet;
var lastColumnInRange = String.fromCharCode(64 + (numberOfOptionsInCurrentRow));
var range_string = 'C' + currentRow + ":" + lastColumnInRange + currentRow;
var optionsArray = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1').getRange(range_string).getValues();
var choicesForQuestion =[];
for (var j=0;j<optionsArray[0].length;j++)
{
choicesForQuestion.push(optionsArray[0][j]);
}
form.addMultipleChoiceItem().setTitle(data[i][1]).setHelpText("").setChoiceValues(choicesForQuestion).setRequired(true);
}
else
{
continue;
}
}
form.addParagraphTextItem()
.setTitle('Please specify and attach relevant documents'); // add the text question at the last
form.addPageBreakItem().setTitle('Identity - Asset Management').setHelpText("")();
}
【问题讨论】:
-
我还在“googleSheet”底部附上了我的谷歌电子表格
-
如果您对代码进行格式化以使其在 StackOverflow 阅读器中更具可读性,将会有所帮助。否则,作为您的第一个问题,这是一个合理的问题!
-
感谢@NoseKnowsAll!我的代码格式有什么问题吗?我的意思是阅读它?
-
是的,格式不正确。例如,您的方括号
{}应该全部垂直排列,以便在视觉上很容易分辨出相同代码块中的内容。这也意味着代码块内的所有内容都应该是选项卡(嗯,4 个空格)。这两个修复将使这个问题更具可读性。
标签: google-apps-script google-sheets google-forms