Dan*_*ler 4 google-sheets google-apps-script
我见过很多关于如何使用脚本将工作表复制到 Google 电子表格中的另一个电子表格的答案,例如此 copyTo 方法。
但现在我有一个包含许多选项卡的大型电子表格,并且我创建了它的新版本,并在绑定脚本中进行了更新。这张新表中的数据是测试数据。这就是我所拥有的:
然后我需要将新的脚本项目复制到旧的电子表格(具有一致的数据)。
我知道我可以努力复制每张纸,但这实际上不是这里的问题(除了命名范围也会造成很多麻烦)。问题是如何将脚本项目复制到另一个电子表格。
您还在寻找这个问题的答案吗?如果你仍然这样做,这个答案怎么样?最近,添加了 Google Apps Script API。这样,用户就可以轻松管理GAS项目文件。此示例脚本使用此 API。
为了使用该示例,请执行以下安装流程。
https://www.googleapis.com/auth/script.projects将和的范围添加https://www.googleapis.com/auth/script.external_request到脚本编辑器的清单文件 (appsscript.json)。
"oauthScopes": ["https://www.googleapis.com/auth/script.projects", "https://www.googleapis.com/auth/script.external_request", "### other scopes ###"]到 appsscript.json 并保存。
通过这些流程,源电子表格的项目(绑定脚本)被复制到目标电子表格。
在启动此示例之前,请输入源电子表格的项目 ID 和目标电子表格 ID。
function main() {
var srcProjectId = "### project ID ###"; // Source project ID
var dstGoogleDocsId = "### file ID of Google Docs ###"; // Destination spreadsheet ID
var baseUrl = "https://script.googleapis.com/v1/projects";
var accessToken = ScriptApp.getOAuthToken();
// Retrieve filename of bound-script project.
var srcName = JSON.parse(UrlFetchApp.fetch(baseUrl + "/" + srcProjectId, {
method: "get",
headers: {"Authorization": "Bearer " + accessToken}
}).getContentText()).title;
// Retrieve bound-script project.
var obj = UrlFetchApp.fetch(baseUrl + "/" + srcProjectId + "/content", {
method: "get",
headers: {"Authorization": "Bearer " + accessToken}
}).getContentText();
// Create new bound script and retrieve project ID.
var dstId = JSON.parse(UrlFetchApp.fetch(baseUrl, {
method: "post",
contentType: 'application/json',
headers: {"Authorization": "Bearer " + accessToken},
payload: JSON.stringify({"title": srcName, "parentId": dstGoogleDocsId})
}).getContentText()).scriptId;
// Upload a project to bound-script project.
var res = JSON.parse(UrlFetchApp.fetch(baseUrl + "/" + dstId + "/content", {
method: "put",
contentType: 'application/json',
headers: {"Authorization": "Bearer " + accessToken},
payload: obj
}).getContentText());
}
Run Code Online (Sandbox Code Playgroud)
如果我误解了你的问题,我很抱歉。
2019 年 4 月 8 日,Google Apps 脚本项目的规范发生了更改。请参阅Google Cloud Platform 项目的详细信息。当您将 Google Apps 脚本 API 与 2019 年 4 月 8 日之后创建的 GAS 项目结合使用时,请创建一个新的 Cloud Platform 项目,并将 GAS 项目链接到创建的 Cloud Platform 项目。(在脚本编辑器,资源-->云平台项目)这样,就可以使用上面的流程了。
| 归档时间: |
|
| 查看次数: |
9758 次 |
| 最近记录: |