我有几个经常重复使用的 Google 表单,每次提交大约 300 - 400 个表单。
到目前为止,我有两种手动重置表单的方法:
- 在保持表单编辑器打开的同时删除表单。
- 选择包含表单提交的行,右键单击并选择“删除...行”。
使用脚本,我没有找到像form.reset()
. 该方法.DeleteRows(fromRow, to Row)
只是删除行,但不影响计数器。
那么,如何使用 Google Apps 脚本自动执行“重置表单”任务?
或者,如何在脚本中模仿第二种方式?
谢谢!
我有几个经常重复使用的 Google 表单,每次提交大约 300 - 400 个表单。
到目前为止,我有两种手动重置表单的方法:
使用脚本,我没有找到像form.reset()
. 该方法.DeleteRows(fromRow, to Row)
只是删除行,但不影响计数器。
那么,如何使用 Google Apps 脚本自动执行“重置表单”任务?
或者,如何在脚本中模仿第二种方式?
谢谢!
Google 表单创建了一个新的表单编辑器(仅在几周前发布)。这个新的表单编辑器有一个“删除所有回复”选项。因此,一种选择是在新的表单编辑器中重新创建表单。(从新电子表格中,单击工具 > 创建表单)。
注意: Google Apps 用户还不能使用这个新的表单编辑器。
我有一个可行的解决方案,它使用deleteRows()
. 我不确定为什么这对你不起作用,看看你的代码会很有趣。
新的 Forms 产品(2013 年 2 月)与旧表单完全不同 -此解决方案仅适用于旧表单。
无论如何,这就是我所拥有的,前后截图。该tidy()
函数可以通过传入要删除的行数来调用,或者您可以从菜单中调用它,如此处所示。此脚本的更完整版本可作为 gist 获得。
/**
* Standard onOpen provided in script template.
*/
function onOpen() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [{name : "Read Data",functionName : "readRows"},
{name : "Tidy Form Responses", functionName : "tidy"}];
sheet.addMenu("Script Center Menu", entries);
};
/**
* Prompt user for the number of form response rows to remove, then delete them.
* Assumes that the form responses are in the active sheet, that there is one
* row of 'headers' followed by responses (in row 2).
*
* @param {number} thisMany (Optional) The number of rows to remove. If not
* specified, user will be prompted for input.
*/
function tidy(thisMany) {
if (tidy.arguments.length == 0) {
thisMany = Browser.inputBox("How many responses should be tidied?");
}
var sheet = SpreadsheetApp.getActiveSheet();
sheet.deleteRows(2, thisMany);
}