是否可以从命名工作表中获取ID(字符串)?我正在尝试将过滤器应用于命名工作表。我看到的所有示例都是从活动工作表中获取ID。但我想将其用于命名工作表。我该怎么办?
var resultSheet = spreadsheetApp.getActiveSpreadsheet().getSheetByName("Result");
Sheets.Spreadsheets.batchUpdate({'requests': request}, resultSheet.getSheetId());
答案 0 :(得分:0)
使用:
var sheetID = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Your sheet name").getSheetId();
sheetID将包含带有工作表ID的字符串
在此处查看文档:{{3}}
答案 1 :(得分:0)
Google表格有两种相关的“ ID”类型-一种与当前打开的Google表格文件相对应-spreadsheetId
(也与Google云端硬盘fileId
的值完全相同),以及另一个对应于Google表格电子表格中的特定Sheet
,可互换地称为gridId
or sheetId
。
从给定的Sheet
对象中,您可以使用类方法getParent()
获得对封闭的Spreadsheet
对象的引用。 Spreadsheet
具有方法getId()
,该方法将返回Sheets API batchUpdate
方法所需的fileId
/ spreadsheetId
。
通常已经有对电子表格的引用:
const wkbk = SpreadsheetApp.getActive();
const sheet = wkbk.getSheetByName("some name");
// ...
Sheets.Spreadsheets.batchUpdate({'requests': request}, wkbk.getId());
根据代码的结构,此引用可能不在范围内,也许您不想/不能在函数的参数列表中包含相关ID:
function foo() {
const wkbk = SpreadsheetApp.getActive();
const wkbkId = wkbk.getId();
// ...
doSheetUpdate_(wkbk.getSheetByName("some name"));
// ...
}
function doSheetUpdate_(sheet) {
const wkbkId = sheet.getParent().getId();
const rq = getRequest_(sheet.getSheetId());
// ...
const resp = Sheets.Spreadsheets.batchUpdate({'requests': rq}, wkbkId);
}
function getRequest_(sheetId) {
// ...
}
答案 2 :(得分:0)
多亏了帖子,我得到了我一直在寻找的答案。这是我可以使用的代码。
var resultSheet = spreadsheetApp.getActiveSpreadsheet().getSheetByName("Result");
var myID = resultSheet.getParent().getID();
Sheets.Spreadsheets.batchUpdate({'requests': request}, myID);
这将帮助我避免工作表切换。