google-apps-script - 复制电子表格也会复制所有链接的文件
问题描述
当我使用库方法时,我希望能够只复制电子表格及其所有工作表以及所有定义的工作表名称:
spreadSheet.copy(newSSName);
或者,
myFile.makeCopy(newNameOfFile);
目前,这些方法复制所有链接的表单和表单中使用的脚本。这对我需要的东西来说是不必要的副作用,并且会导致 Drive 文件夹中的大量混乱。有没有一种方法可以快速有效地做到这一点,而无需逐个单元格,逐页复制?还是这是唯一的选择?
谢谢。
解决方案
这个解决方法怎么样?在此解决方法中,Sheets API 用于复制电子表格。对于 Class Spreadsheet 的 copy(),Class File 和 Files 的 makeCopy():Drive API 的副本,复制的电子表格包括绑定的脚本和链接的表单。所以我想使用 Sheets API。此解决方法的流程如下。
- 使用 spreadsheets.get 检索源电子表格的对象。
- 通过使用电子表格.create 包含检索到的对象来创建新的电子表格。
通过该流程,可以创建不包括绑定脚本和链接表单的复制电子表格。示例脚本如下。使用此脚本时,请在高级 Google 服务和 API 控制台中启用 Sheets API。您可以在此处了解如何启用 Sheets API 。
示例脚本:
var fileId = "### fileId of source Spreadsheet ###"; // Please set here.
var obj = Sheets.Spreadsheets.get(fileId, {fields: "namedRanges,properties,sheets"});
Sheets.Spreadsheets.create(obj);
笔记 :
- 使用此脚本时,请设置源电子表格的 fileId。
- 在 Sheets API 的电子表格.create 中,无法在特定文件夹中创建电子表格。所以复制的电子表格被创建到根文件夹。如果您想在特定文件夹中创建它,请在复制电子表格后将其移动。当然,您可以使用脚本来完成。
- 如果您想包含
developerMetadata
电子表格,请将其添加到fields
.
参考 :
如果这不是你想要的,我很抱歉。
推荐阅读
- r - 从 rdrobust 打印具有 3 个回归输出模型的表格
- c# - 无法在 Asp.NET Core Web API 中获取 AWSSDK 的 IAM 用户凭证
- javascript - 检测 Service Worker 的 Fetch Abort
- java - 如何在 Java 上打印特定的 MySQL 错误信息
- windows - 共享 ssh-agent - windows 服务,msys2 shell
- parsing - 在表单上检测复选框和与它们关联的标签时遇到问题
- php - 无法在 magento 2 中使用来自 csv 的属性代码导入属性选项数组
- jq - 用 jq grep 特定值
- filter - 如何重新定义 Apache Superset 过滤器中的“现在”是什么?
- c++ - 错误:g++.exe:没有这样的文件或目录 g++.exe:致命错误:Visual Studio 代码中没有输入文件?