我正在使用GoogleApps脚本将来自GoogleSheets的问题添加到GoogleForm中。列表从两个单独的数组中读取,并作为单独的网格类型问题添加。我还将工作表设置为表单结果的目标。
当我运行脚本时,表单得到了完美的更新。如果要添加10个项目,则在表单中添加10个问题。但是,在链接的表单响应表中,经常会添加标题为“[第1行]”的其他列。每次运行脚本时,附加列的数量及其位置都会发生变化。我还没学会任何模式。
我知道在表单的UI中创建问题时,“行1”作为网格类型问题的默认第一项出现。我不确定这是否与此有关。仅供参考-网格项允许添加多行问题,但我只添加一个问题。我知道有一个多选网格类型,但我不喜欢它的格式。
作为一种解决方案,我创建了一个脚本来删除所有这些额外的列,但我真的很想弄清楚到底发生了什么。
对正在发生的事情有什么想法吗?
以下是我的部分代码:
function editForm()
{
var setupSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Setup'); //Create variable for the Setup sheet
var metricSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Final Metric Statements'); //Create variable for the Metric Statements sheet
var form = FormApp.openById(setupSheet.getRange("D1").getValue()); //Open form using the form ID from the setup sheet
var pageFour = form.addPageBreakItem().setTitle('Questions');
var emotLen = 0; //Counter for sub-emotion items
var featLen = 0; //Counter for sub-feature items
//Count number of items for first list
while (((metricSheet.getRange("C"+ (emotLen+2)).getValue()) != "") && ((metricSheet.getRange("C"+ (emotLen+2)).getValue()) != "#N/A")) //Go through sub-emotion column until a blank cell
{
emotLen++; //Increase the counter
}
//Count number of items for second list
while (((metricSheet.getRange("D"+ (featLen+2)).getValue()) != "") && ((metricSheet.getRange("D"+ (featLen+2)).getValue()) != "#N/A")) //Go through sub-feature column until a blank cell
{
featLen++; //Increase the counter
}
if (emotLen > 0)
{
var emotRng = metricSheet.getRange(2,3,emotLen); //Create a range for sub-emotions based on number of items and column
var emotArray = emotRng.getValues(); //Copy the items into an array
for (i=0; i <= (emotLen-1); i++)
{
var emotItem = form.addGridItem();
emotItem.setRows(emotArray[i]);
emotItem.setColumns(['Strongly Disagree', 'Disagree','Slightly Disagree', 'Neither Disagree or Agree', 'Slightly Agree', 'Agree', 'Strongly Agree', 'N/A']);//Add column header
emotItem.setRequired(true);
}
}
if (featLen > 0 )
{
var featRng = metricSheet.getRange(2,4,featLen); //Create a range for features based on number of items
var featArray = featRng.getValues(); //Copy the items into an array
for (i = 0; i <=(featLen-1); i++) //Go through all items in the array
{
var featItem = form.addGridItem();//Add item to survey
featItem.setRows(featArray[i]); //Add row item
featItem.setColumns(['Strongly Disagree', 'Disagree','Slightly Disagree', 'Neither Disagree or Agree', 'Slightly Agree', 'Agree', 'Strongly Agree', 'N/A']);//Add column header
featItem.setRequired(true);
}
}
//deleteRowColumns();
//Logger.log(emotLen, emotArray, featLen, featArray); //Logger used for debugging
}
我冒昧地在谷歌的问题追踪器上为您报告了这一点,详细说明了以下行为:
你可以打电话☆ 在页面左上角的问题编号旁边,它让谷歌知道有更多的人遇到了这个问题,因此它更有可能更快地被看到。
我试图概念化我的结构和值,以组织表单中的多个表中的表单响应基于我的表单问题响应之一(更改的位置)选择的值。我有一个清单,到目前为止完成如下。我还列出了额外的步骤,以及我认为我需要创造什么来实现我想要的。有人能指导我指出我可能存在的问题或更好的方法吗? 打开表格-已完成 打开电子表格-已完成 Form将正确格式的响应保存到电子表格-已完成 设置对变量的表单响应-完成 将表单问题设置为变量-已完成 在
有人能帮我把脚本布局转换成实际的功能代码吗?我有一般的编码知识,但我不知道正确的语法。 基本上,我需要的是一个脚本,当提交表单条目时,它会在所有工作表/选项卡之间循环。表单包含提交表单的人的姓名(字符串)、开始日期、结束日期,最后是注释字段(字符串)。 我需要脚本来遍历每个工作表的第5行,并查找在第一个表单字段中输入的字符串(提交表单的人的姓名)。如果它找到了该名称,它应该将与该名称对应的列保存到
我有一个GoogleApps电子表格,其中一列包含日期和时间。这张纸是由几张纸合并而成的。在某些行上,该值是一个日期(即typeof sheet.getRange(i,2).getValue()==“object”,带有日期的方法)。其他时间,此单元格是一个数字(即typeof sheet.getRange(i,2).getValue()=“number”),但单元格格式将单元格显示为一个日期。
我使用谷歌脚本生成了一个结构相同但内容不同的表单列表。我想收集每个表单的回复,并将它们合并成一个单独的谷歌表单。有什么方法可以在google脚本中这样做吗?
在当前版本的Google Sheet中,要在单元格中插入超链接,可以执行以下操作 在新版Google Sheets中,超链接插入是不同的,您可以这样做。 但是,我有一个问题,在电子表格中插入的值不是我所期望的。在这张显示插入链接的图像中,在=HYPERLINK之前插入了一个“插入”——我不知道这是从哪里来的。有什么想法吗?
我正在通过谷歌webapp进行搜索,我想通过从谷歌表格单元格中获取超文本标记语言设计来显示前端。在屏幕截图中显示一些示例 这是我的脚本代码 main.html 搜索html serversidefunc。gs 加载部分。gs 我希望我上面的帖子很清楚。