问题描述
即使问题标题保持不变,重新制作的问题最终会在表单响应表上显示为新列,这对分析人员来说变得混乱。我真诚地请求逐步解释/协助如何修复它,因为我非常初学者。
How to Edit existing google form item (question) using google Apps Script 我已经看到了这个,似乎它应该对我有帮助,但我不知道如何合并它。
这是我目前所拥有的
function FormCreator() {
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('12z4pe1XM1qhUOdhl198w8ut_hW0Mwh_rZnZGjVBIbTQ');
var items = form.getItems();
while(items.length > 0){
form.deleteItem(items.pop());
}
for(var i=0;i<numberRows;i++){
var questionType = data[i][0];
if (questionType==''){
continue;
}
else if(questionType=='TEXT'){
form.addTextItem()
.setTitle(data[i][1])
.setHelpText(data[i][2])
.setrequired(true);
}
else if(questionType=='ParaGRAPH'){
form.addParagraphTextItem()
.setTitle(data[i][1])
.setHelpText(data[i][2])
.setrequired(true);
}
else if(questionType=='CHOICE'){
var rowLength = data[i].length;
var currentRow = firstRow+i;
var currentRangeValues = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1').getRange(currentRow,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 = 'E' + 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(data[i][2])
.setChoiceValues(choicesForQuestion)
.showOtherOption(true);
}
else if(questionType=='CHECKBox'){
var rowLength = data[i].length;
var currentRow = firstRow+i;
var currentRangeValues = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1').getRange(currentRow,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 = 'E' + 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.addCheckBoxItem()
.setTitle(data[i][1])
.setHelpText(data[i][2])
.setChoiceValues(choicesForQuestion)
.showOtherOption(true);
}
else if(questionType=='LIST'){
var rowLength = data[i].length;
var currentRow = firstRow+i;
var currentRangeValues = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1').getRange(currentRow,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 = 'E' + 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.addListItem()
.setTitle(data[i][1])
.setHelpText(data[i][2])
.setChoiceValues(choicesForQuestion)
.showOtherOption(true);
}
else if(questionType=='GRID'){
var rowLength = data[i].length;
var currentRow = firstRow+i;
var currentRangeValues = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1').getRange(currentRow,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 = 'E' + currentRow + ":" + lastColumnInRange + currentRow;
var optionsArray = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1').getRange(range_string).getValues();
var rowTitles =[];
for (var j=0;j<optionsArray[0].length;j++){
rowTitles.push(optionsArray[0][j]);
}
var rowLength = data[i+1].length;
var currentRow = firstRow+i+1;
var currentRangeValues = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1').getRange(currentRow,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 = 'E' + currentRow + ":" + lastColumnInRange + currentRow;
var optionsArray = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1').getRange(range_string).getValues();
var columnTitles =[];
for (var j=0;j<optionsArray[0].length;j++){
columnTitles.push(optionsArray[0][j]);
}
form.addGridItem()
.setTitle(data[i][1])
.setHelpText(data[i][2])
.setRows(rowTitles)
.setColumns(columnTitles)
.showOtherOption(true);
}
else if(questionType=='IMAGE'){
var img = UrlFetchApp.fetch(data[i][3]);
form.addImageItem()
.setTitle(data[i][1])
.setHelpText(data[i][2])
.setimage(img);
}
else if(questionType=='PAGE'){
form.addPageBreakItem()
.setTitle(data[i][1])
.setHelpText(data[i][2]);
}
else if(questionType=='SECTION'){
form.addSectionHeaderItem()
.setTitle(data[i][1])
.setHelpText(data[i][2]);
}
else if(questionType=='TIME'){
form.addTimeItem()
.setTitle(data[i][1])
.setHelpText(data[i][2]);
}
else{
continue;
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)