Class NamedRange
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
命名范围
具有名称和 ID 的 Range
,以便日后检索。名称不一定是唯一的;同一标签页中的多个不同范围可以共用相同的名称,就像 HTML 中的类一样。相比之下,ID 在标签页中是唯一的,就像 HTML 中的 ID 一样。NamedRange
添加到标签页后,便无法修改,只能移除。
任何访问该标签页的脚本都可以访问 NamedRange
。为避免脚本之间意外发生冲突,不妨考虑为范围名称添加唯一字符串前缀。
// Create a named range that includes every table in the active tab.
const documentTab =
DocumentApp.getActiveDocument().getActiveTab().asDocumentTab();
const rangeBuilder = documentTab.newRange();
const tables = documentTab.getBody().getTables();
for (let i = 0; i < tables.length; i++) {
rangeBuilder.addElement(tables[i]);
}
documentTab.addNamedRange('myUniquePrefix-tables', rangeBuilder.build());
详细文档
getId()
获取此 NamedRange
的 ID。该 ID 在标签页中是唯一的。
返回
String
- 范围的 ID,在标签页中是唯一的。
getName()
获取此 NamedRange
的名称。该名称不一定是唯一的。
返回
String
- 范围的名称,不一定是唯一的。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/documents.currentonly
-
https://www.googleapis.com/auth/documents
getRange()
获取与此 NamedRange
关联的元素范围。
返回
Range
- 与名称和 ID 关联的元素范围。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/documents.currentonly
-
https://www.googleapis.com/auth/documents
remove()
从标签页中移除此 NamedRange
。此方法不会删除范围的内容,而只会移除引用。对已移除的 NamedRange
调用此方法不会产生任何效果。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/documents.currentonly
-
https://www.googleapis.com/auth/documents
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-26。
[null,null,["最后更新时间 (UTC):2025-07-26。"],[[["\u003cp\u003eA \u003ccode\u003eNamedRange\u003c/code\u003e is a named area within a Google Doc tab, retrievable using its name or unique ID, similar to HTML elements with classes and IDs respectively.\u003c/p\u003e\n"],["\u003cp\u003eWhile multiple ranges can share the same name, IDs are unique within a tab, and once a \u003ccode\u003eNamedRange\u003c/code\u003e is added, it can only be removed, not modified.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eNamedRange\u003c/code\u003e provides methods like \u003ccode\u003egetId()\u003c/code\u003e, \u003ccode\u003egetName()\u003c/code\u003e, \u003ccode\u003egetRange()\u003c/code\u003e, and \u003ccode\u003eremove()\u003c/code\u003e for managing and accessing the named range and its associated elements.\u003c/p\u003e\n"],["\u003cp\u003eScripts can access \u003ccode\u003eNamedRange\u003c/code\u003e within a tab, and using unique prefixes for range names helps avoid conflicts between different scripts.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eNamedRange\u003c/code\u003e methods might require specific authorization scopes for accessing and manipulating document content.\u003c/p\u003e\n"]]],[],null,["# Class NamedRange\n\nNamedRange\n\nA [Range](/apps-script/reference/document/range) that has a name and ID to allow later retrieval. Names are not\nnecessarily unique; several different ranges in the same tab may share the same name, much like a\nclass in HTML. By contrast, IDs are unique within the tab, like an ID in HTML. Once a `Named``Range` has been added to a tab, it cannot be modified, only removed.\n\nA `Named``Range` can be accessed by any script that accesses the tab. To avoid unintended\nconflicts between scripts, consider prefixing range names with a unique string.\n\n```javascript\n// Create a named range that includes every table in the active tab.\nconst documentTab =\n DocumentApp.getActiveDocument().getActiveTab().asDocumentTab();\nconst rangeBuilder = documentTab.newRange();\nconst tables = documentTab.getBody().getTables();\nfor (let i = 0; i \u003c tables.length; i++) {\n rangeBuilder.addElement(tables[i]);\n}\ndocumentTab.addNamedRange('myUniquePrefix-tables', rangeBuilder.build());\n``` \n\n### Methods\n\n| Method | Return type | Brief description |\n|---------------------------|------------------------------------------------|-----------------------------------------------------------------|\n| [getId()](#getId()) | `String` | Gets the ID of this `Named``Range`. |\n| [getName()](#getName()) | `String` | Gets the name of this `Named``Range`. |\n| [getRange()](#getRange()) | [Range](/apps-script/reference/document/range) | Gets the range of elements associated with this `Named``Range`. |\n| [remove()](#remove()) | `void` | Removes this `Named``Range` from the tab. |\n\nDetailed documentation\n----------------------\n\n### `get``Id()`\n\nGets the ID of this `Named``Range`. The ID is unique within the tab.\n\n#### Return\n\n\n`String` --- The range's ID, which is unique within the tab.\n\n*** ** * ** ***\n\n### `get``Name()`\n\nGets the name of this `Named``Range`. The name is not necessarily unique.\n\n#### Return\n\n\n`String` --- The range's name, which is not necessarily unique.\n\n#### Authorization\n\nScripts that use this method require authorization with one or more of the following [scopes](/apps-script/concepts/scopes#setting_explicit_scopes):\n\n- `https://www.googleapis.com/auth/documents.currentonly`\n- `https://www.googleapis.com/auth/documents`\n\n*** ** * ** ***\n\n### `get``Range()`\n\nGets the range of elements associated with this `Named``Range`.\n\n#### Return\n\n\n[Range](/apps-script/reference/document/range) --- The range of elements associated with the name and ID.\n\n#### Authorization\n\nScripts that use this method require authorization with one or more of the following [scopes](/apps-script/concepts/scopes#setting_explicit_scopes):\n\n- `https://www.googleapis.com/auth/documents.currentonly`\n- `https://www.googleapis.com/auth/documents`\n\n*** ** * ** ***\n\n### `remove()`\n\nRemoves this `Named``Range` from the tab. This method doesn't delete the contents of the\nrange; it merely the removes the reference. Calling this method on a `Named``Range` that\nhas already been removed has no effect.\n\n#### Authorization\n\nScripts that use this method require authorization with one or more of the following [scopes](/apps-script/concepts/scopes#setting_explicit_scopes):\n\n- `https://www.googleapis.com/auth/documents.currentonly`\n- `https://www.googleapis.com/auth/documents`"]]