google-apps-script - 如何将一个谷歌表复制到另一个谷歌表
问题描述
我确实有两个不同的谷歌表格,我需要使用脚本将表格测试从一个复制到另一个,但是出现错误,对此有什么想法吗?
var source_sheet= "https://address of the otgoogle sheet tho be copied over")"
//here I'm on another google sheet, add a menu to copy the source from above
var ui = SpreadsheetApp.getUi();
//var ss = SpreadsheetApp.getActiveSpreadsheet();
var result = ui.prompt(
'Add New Sheet',
'Please enter Name',
ui.ButtonSet.OK);
var button = result.getSelectedButton();
var text = result.getResponseText();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
sheet.copyTo(link_to_src).setName(text);
出现以下错误:异常:参数(字符串)与 SpreadsheetApp.Sheet.copyTo 的方法签名不匹配。(第 xx 行,文件“复制重命名”)详细信息关闭
任何帮助将提前表示赞赏..
解决方案
- 您想要将源电子表格的工作表(不是活动电子表格)复制到运行脚本的活动电子表格。
source_sheet
是电子表格的 URL,如https://docs.google.com/spreadsheets/d/{spreadsheetId}/edit
.- 运行脚本时,您希望使用对话框在源电子表格中输入工作表名称并将工作表复制到活动电子表格中。
我可以像上面那样理解。如果我的理解是正确的,那么这个修改呢?
修改后的脚本
请按如下方式修改您的脚本。在运行脚本之前,请将目标电子表格 URL 设置为source_sheet
.
var sheet = ss.getActiveSheet();
sheet.copyTo(link_to_src).setName(text);
至:
var sourceSheet = SpreadsheetApp.openByUrl(source_sheet).getSheetByName(text);
if (sourceSheet) {
sourceSheet.copyTo(ss).setName(text).activate();
} else {
ui.alert(text + " sheet was not found.");
}
- 运行脚本时,会打开一个对话框。当输入源电子表格的表格名称时,表格被复制到当前激活的电子表格中,然后,复制的表格被激活。
- 如果输入了不包括在源电子表格中的工作表名称,则会打开一个对话框。
参考:
推荐阅读
- verilog - Verilog 原语
- c++ - pcl_ros::transformPointCloud 的矢量化
- c# - C# Aes byte[] 加密/解密:不是一个完整的块
- python - 在 Python 中解析包含“\u 作为 UTF-8 字节”的 JSON
- python - 如何使用正则表达式提取引号内的值?
- machine-learning - 使用什么类型的神经网络来区分真假图像?
- python - 未找到“”的反向。'' 不是有效的视图函数或模式名称 - Django App
- c# - 等待加载网页,直到找到元素
- node.js - 使用 Node.js 设置获取内部服务器错误 (500) 以使用 HTTPS
- vaadin - vaadin 应用程序的路径上下文是什么