google 电子表格 return url 中的 getFormUrl() 只有最后一个链接的表单?
getFormUrl() in google spreadsheet return url only of last linked form?
我有两个表格与一个跨页链接sheet,每个表格一个sheet。
当我运行这样的脚本
function myFunction() {
var ss;
ss = SpreadsheetApp.getActive();
Logger.log(ss.getFormUrl());
}
我只会看到一个 url(如生活所示 url 第二种形式)。有什么方法可以获取所有链接表单的 urls 吗?
API 目前缺少此功能。此 here 的问题跟踪器上存在现有请求。为该问题加注星号以关注它以获得解决方案。
我知道这是一个老问题,但我仍然会为可能关注的人添加一个答案。
一般来说,Form
连接到 Sheet
,而不是连接到 Spreadsheet
本身。因此,获取所有 Spreadsheet
表单的一种方法是遍历 Spreadsheets
的 Sheet
,并获取它们的表单 URL,就像这样:
function getFormsOfSpreadsheet(spreadsheetId) {
const ss = SpreadsheetApp.openById(spreadsheetId);
const sheets = ss.getSheets();
const formsUrls = [];
for (const sheet of sheets) {
const formUrl = sheet.getFormUrl();
// getFormUrl() returns null if no form connected
if (formUrl) {
formsUrls.push(formUrl);
}
}
return formsUrls;
}
另一种可能的方法是获取驱动器或 Folder
中的所有 Form
,遍历它们以获得它们的目的地并将其与您的 Spreadsheet
进行比较ID,如 this answer
我有两个表格与一个跨页链接sheet,每个表格一个sheet。 当我运行这样的脚本
function myFunction() {
var ss;
ss = SpreadsheetApp.getActive();
Logger.log(ss.getFormUrl());
}
我只会看到一个 url(如生活所示 url 第二种形式)。有什么方法可以获取所有链接表单的 urls 吗?
API 目前缺少此功能。此 here 的问题跟踪器上存在现有请求。为该问题加注星号以关注它以获得解决方案。
我知道这是一个老问题,但我仍然会为可能关注的人添加一个答案。
一般来说,Form
连接到 Sheet
,而不是连接到 Spreadsheet
本身。因此,获取所有 Spreadsheet
表单的一种方法是遍历 Spreadsheets
的 Sheet
,并获取它们的表单 URL,就像这样:
function getFormsOfSpreadsheet(spreadsheetId) {
const ss = SpreadsheetApp.openById(spreadsheetId);
const sheets = ss.getSheets();
const formsUrls = [];
for (const sheet of sheets) {
const formUrl = sheet.getFormUrl();
// getFormUrl() returns null if no form connected
if (formUrl) {
formsUrls.push(formUrl);
}
}
return formsUrls;
}
另一种可能的方法是获取驱动器或 Folder
中的所有 Form
,遍历它们以获得它们的目的地并将其与您的 Spreadsheet
进行比较ID,如 this answer