谷歌表单脚本 ItemResponse getScore() 返回null
不确定是否是错误,但 getScore() 方法(https://developers.google.com/apps-script/reference/forms/item-response#getscore) 总是为我返回 null ,而据说它应该返回一个double. 表格是测验,确实接受答案,所有问题的分数都设置为2,分数是是在 Google 表单的回复中注册. // Code.gs function onOpen (e) { setOnSubmitTrigger(); } function setOnSubmitTrigger () { var form = FormApp.getActiveForm(); ScriptApp.newTrigger(respondToFormSubmit) .forForm(form) .onFormSubmit() .create(); } function respondToFormSub
154 2022-08-14
编程技术问答社区
根据一个单元格中是否有以逗号或新行分隔的数值,将单行分成多行-谷歌电子表格
电子表格有一些单元格的单元格内容由逗号或换行分隔. 123、876、456 列“C"是确定是否应将一行拆分为多行的列. 电子表格示例 表单中的信息进入“表单提交"页面. 我们必须满足特定格式才能提交给我们的报告跟踪软件,该格式要求将问题编号(在 C 列中找到)与在 A:B、D:J 列中找到的信息分开成各自的行保持不变(见预期结果表). 我发现了一个类似的问题(链接到类似问题),我们将其实现到我们的 Google 表格中. 此脚本需要在单独的工作表上将函数“=result('FormSubmission'!A2:J) 放置在我们希望显示数据的第一列/行中(参见“当前结果"工作表),单元格 A2.) 这是我们正在使用的编码: function result(range) { var output2 = []; for(var i = 0, iLen = range.length; i
336 2022-07-17
编程技术问答社区
在谷歌应用程序脚本中把字符串值格式化为货币值
我创建了一个 Google 表单,该表单有一个字段,用户在该字段中输入一个数字值(在表单上进行数字验证),然后提交.当数字(例如 34.00)被提交时,它在 Google 电子表格中显示为 34,这很烦人但可以理解.我已经有一个脚本在提交表单时运行,以生成格式良好的表单上提交的信息版本,但我无法将该值格式化为货币值(即 34 --> $34.00) 使用 Utilities.formatString 函数.任何人都可以帮忙吗?提前致谢. 解决方案 Event Objects 是一个字符串数组,如下所示: ['2015/05/04 15:00', 'amin@example.com', 'Bob', '27', 'Bill', '28', 'Susan', '25'] 因此,希望将任何这些值用作除字符串之外的任何值的脚本将需要执行 显式类型转换,或使用一元运算符 (+) 将字符串强制转换为数字. var numericSalary = +e.values[9]; 或者,
158 2022-07-17
编程技术问答社区
根据电子表格自动填写谷歌表格字段
假设我有一个包含以下字段的 Google 表单: 身份证 名字 姓氏 日期 资产标签 然后假设我有一个谷歌电子表格,其中包含所有学生的身份证号码和姓名. 有没有办法在输入学号时根据电子表格自动填写表格? 解决方案 是的,您可以使用表单 ID 创建预填充响应,而不是在 URL 中显示预填充字段 Function formPrefill(formId){ var form = FormApp.openById(formId); try{ var items = form.getItems(); var formResponse = form.createResponse(); // Prefill SessionId var formItem = "SOMETHING HERE" var response = formItem.createResponse(sessionId); formRe
174 2022-07-17
编程技术问答社区
谷歌表格。将问题分配给分页并转到页面
关于这个 post,当更多问题添加到相同或不同页面时,只有最后一个问题正确显示.其他问题只显示结构(例如多项选择、列表).下面的代码说明了问题: function createForm() { var title = 'Multipage Form Test'; var description = 'Stackoverflow question 17083500'; var form = FormApp.create('Questionnaire') .setDescription('Questionnaire') .setConfirmationMessage('Thanks for responding!'); var page1 = form.addPageBreakItem() .setTitle('First page'); var item = form.addMultipleChoiceItem(); var item = form.addListItem
174 2022-07-17
编程技术问答社区
在谷歌电子表格的弹出窗口中创建一个谷歌表格。可以这样做吗?
参考: 用于多个工作表的单个 Google 表单 重新声明: 我有点难以让我的写作变得更好或更好理解(英语较少). 我对 Google Apps 脚本 (GAS) 有一点了解. 我已将下面的“MyURLDoc"和“MyIdDoc"更改为 cosinderring我的. 问题: 如何将 Google 表单放入我在 Google 电子表格中制​​作的弹出窗口中? 尝试 1: function goToURL() { FormApp.openByUrl(//*** MyURLDoc! ***//); } 尝试 2:以下是参考文献! function goToForm() { var form = FormApp.openById(//*** MyIdDoc! ***//), formUrl = form.getPublishedUrl(), response = UrlFetchApp.fetch(formUrl),
336 2022-07-17
编程技术问答社区
如何在谷歌表单绑定的脚本和谷歌表单绑定的脚本之间传递一个变量?
我在将信息从谷歌表单获取到谷歌表格时遇到问题.我正在寻找 onFormSubmit 上的编辑 url,然后将其设置到存储响应的列中记录的末尾. 我之前问过这个问题​​无法调用方法“getEditResponseUrl";在使用表单 ID 打开表单时绑定到表单的 Google Apps 脚本上的未定义 作为绑定到表单但尝试访问表单的脚本开始.然后成为绑定到表单但试图访问工作表的脚本. 我发现这个问题似乎与我的问题有关应用程序如何- 表单上的脚本将额外的数据存储到工作表中?(用例略有不同)但与我的类似,我认为在表单上获取电子表格方法时会遇到问题. 由于这两种必需的方法都只能用于脚本或表单,所以我一直在碰壁,所以现在我想我可能需要一个混合解决方案,它需要一些代码绑定到工作表,而一些代码通过在都执行 onFormSubmit 的两个脚本之间传递的变量绑定到表单. 这是我认为我应该保持绑定到表单的内容 function onFormSubmit(e) {
谷歌表格应用脚本。如何检查当前提交的是编辑响应还是新的响应
我正在通过应用脚本处理谷歌表单.我想确定当前提交的表单是处于编辑模式还是新响应?如何在 onSubmit 事件中检查这一点. 如果是,该用户正在编辑之前提交的回复,而不是我想将电子表格中的值更改为“是". 下面是我的代码片段: function testExcel2() { var email = "email"; var s = SpreadsheetApp.openById("id"); var sheet = s.getSheets()[0]; var headers = sheet.getRange(1,1,1,sheet.getLastColumn() - 1).getValues()[0]; var datarow = sheet.getRange(sheet.getLastRow(),1,1,sheet.getLastColumn() - 1).getValues()[0]; var message = ""; for(var
254 2022-07-17
编程技术问答社区
如何为学校测验在谷歌表格中添加计时器?
我正在帮助一位学校老师,我们有一个使用 Google 表单进行的英语语言测试,该测试分为 3 个部分.我们希望能够为每个部分设置时间(例如,部分 A = 10 分钟,部分 B = 10 分钟,部分 C = 40 分钟).我们希望学生能够看到他们正在做的每个部分的倒计时,这可能吗?我是 Google Apps Script 的新手,我看过计时器的 JS 代码,但我不知道如何在 Google 表单中将它们拼凑在一起. 解决方案 目前在 Google 表单中没有类似的功能.您可能希望等待几周,因为有关脚本表单的内容将在 Google 年度会议 Google I/O 上公布.请参阅此处:https://developers.google.com/events/io/sessions/327782631 更新:即使经过这么长时间,脚本中仍然没有可用的这个问题.请检查 Rubén 的答案,其中给出了原因(和一些选项).
1226 2022-07-17
编程技术问答社区
谷歌应用程序脚本错误。你没有权限调用getActiveForm?
我正在创建一个脚本,该脚本从表单中获取信息并将其写入日历.当我在脚本编辑器中运行脚本时,它运行良好,从电子表格中获取信息并创建一个日历事件.但是,当我填写表格并提交(提交是触发器)时,我收到一条错误消息,指出我无权调用 getActiveForm().我拥有表格和日历.我很欣赏任何想法. 代码 function createEvent() { var calendarToUse = "testing"; var ssUrlToUse ='https://docs.google.com/a/bay.k12.fl.us/spreadsheets /d/1ZTDQL9G5U7RqbbKQbAfb3ERqFwpSsC3EOQxdD1zdQwA/edit#gid=441997215'; /* Get Canalnder*/ var calen = CalendarApp.getCalendarsByName(calendarToUse); var cal = cale
280 2022-07-17
编程技术问答社区