google-apps-script - 用于导入范围的 Google 表格脚本:错误“您无权访问它。”
问题描述
TLDR:我需要使用 scsript 从单独的 google 表格导入一系列单元格,但被告知我无权访问另一张表格(我确定 ID 是正确的)。我不知道为什么我无法访问另一张纸。如果有人知道一个简单的脚本来做到这一点,那就太好了。请帮忙!
大家好,我一直在使用 importrange 将其他 google 表格中的数据提取到我的主表格中,但是遇到了其他人之前抱怨的永无止境的加载时间。我以前从未使用过脚本,所以我真的不知道我在做什么。
在目标 google 工作表中,我创建了以下脚本,但收到此错误:“找不到具有给定 ID 的项目,或者您无权访问它。”
function UpdateRange(ID, source_sheet, source_range, destination_sheet_name) {
var values = SpreadsheetApp.open(DriveApp.getFileById(ID))
.getSheetByName(source_sheet)
.getRange(source_range)
.getValues();
return SpreadsheetApp.getActive()
.getSheetByName(destination_sheet_name)
.getRange(1, 22, values.length, values[0].length)
.setValues(values);
}
UpdateRange("1Rt***_tRbs", "Revenue By Category", "E2:M9", "Sheet33");
***用于匿名原始表ID
我不明白我是如何无法访问工作表的,即使我是首先创建它的人。如何访问工作表或我可以做些什么来导入此范围。非常感谢您的帮助!
解决方案
快速浏览一下,您可以尝试简化:
SpreadsheetApp.open(DriveApp.getFileById(ID))...
只是:
SpreadsheetApp.openById(ID)...
这两种方法都应该可以正常工作,但是您避免使用 DriveApp API,它可能需要一些不同的权限,而不仅仅是电子表格的权限。
推荐阅读
- chef-infra - 在 Chef 中,如何从环境文件中读取属性到厨师食谱?
- java - 你如何返回两个方法的总值,每个方法都有一个值?
- python - 在 CKAN 中上传文件但收到“无法连接到 DataPusher”错误
- haskell - 如何在 Haskell 中创建函数 minimax?
- arrays - Eiffel:如何在不重新创建 ARRAY 对象的情况下擦除它
- java - Eclipse:在括号中添加空格
- r - 如何在结果和响应的组合之间进行一系列线性回归?
- twisted - 用于 Google Compute API 的 Twisted 库
- php - 使用计算值的 Laravel 范围
- jquery - 在 MVC 中传递复选框值数组