use*_*438 2 google-sheets google-apps-script google-forms
我有一个与表单链接的Google电子表格,并且所有表单响应都存储在其中。我试图找到的是表单本身的ID。我试过了,但这行不通..
(我正在从表单所链接到的电子表格中的脚本编辑器中运行以下代码。)
function getID()
{
var form = FormApp.getActiveForm();
var formID = form.getId();
Logger.log(formID);
}
Run Code Online (Sandbox Code Playgroud)
由于脚本是容器绑定到电子表格本身的,因此返回NULL。还有什么其他方法可以获取链接表单的ID甚至链接表单的URL?
我可以通过从电子表格执行以下操作来手动获取它。表单>编辑表单这将显示URL。
如果我知道表单的名称,则可以使用DriveApp.getFilesByName()通过名称来获取它,然后对其进行迭代,然后使用File.getId(),但我不一定知道该名称。
有任何想法吗?
小智 6
为了避免解析URL,最安全的方法是:
Logger.log( (FormApp.openByUrl(SpreadsheetApp.getActiveSpreadsheet().getFormUrl())).getId() );
Run Code Online (Sandbox Code Playgroud)
或长手版本:
function logFormId_LongHand(){
var formURL = SpreadsheetApp.getActiveSpreadsheet().getFormUrl();
var form = FormApp.openByUrl(formURL);
var formId = form.getId();
Logger.log( formId );
}
Run Code Online (Sandbox Code Playgroud)
为了在电子表格应用程序脚本中获取表单对象,我使用以下函数:
function getLinkedForm(){
return FormApp.openByUrl( SpreadsheetApp.getActiveSpreadsheet().getFormUrl() );
}
Run Code Online (Sandbox Code Playgroud)
小智 0
是的。
这将是一个从电子表格中运行的脚本:
function getFormUrl()
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formUrl = ss.getFormUrl();
Logger.log(formUrl);
}
Run Code Online (Sandbox Code Playgroud)
但是,如果您尝试在新电子表格中运行它,您会收到以下错误消息:
The api method 'getFormUrl' is not available yet in the new version of Google Sheets.
Run Code Online (Sandbox Code Playgroud)
因此,在他们添加支持之前,它只能在旧版本中使用。
| 归档时间: |
|
| 查看次数: |
7610 次 |
| 最近记录: |