授权在指定文件夹中创建新电子表格

问题描述 投票:0回答:1

首先,我是 Google 脚本的新手,但有丰富的 VBA 编码经验。 我已经开始编写一个从源电子表格运行的脚本,最终将:

  1. 在给定文件夹中创建一个新电子表格(该文件夹由我们的业务用户共享并具有已知的 ID),
  2. 为新电子表格命名(最终将成为基于源电子表格中公式值的变量),
  3. 将单个工作表从源电子表格复制到新电子表格,
  4. 删除新电子表格的Sheet1,
  5. 将新电子表格的链接存储在变量中,并且
  6. 将新电子表格链接插入到脚本生成的电子邮件中,并附加新电子表格的 pdf 版本。

我尝试使用许多贡献者提供的各种不同的编码,但都失败了。看来我的主要问题是权限,我不理解并且无法找到任何解决方法

最新的错误是: “您无权调用 SpreadsheetApp.create。所需权限:https://www.googleapis.com/auth/spreadsheets”

这是由第一行代码触发的:

var crNew = SpreadsheetApp.create("MynewWorksheetName"); 
    var ssNew = SpreadsheetApp.openByUrl(crNew.getUrl());
    ssNew.getSheets()[0].setName("newname");

我看到其他人也遇到过类似的缺乏权限的问题。提到了自定义函数和云脚本授权,但似乎没有任何有效的简单英语解决方案。

我也不想使用外部“独立”脚本(整个脚本需要包含在单个电子表格中)。

有人可以帮忙吗?


编者注:以下引用来自OP评论:

我打算让用户从源电子表格中的按钮运行脚本。我不确定你所说的“谁在运行你的流程?”是什么意思

google-apps-script google-sheets authorization google-workspace
1个回答
0
投票

当通过单击用作按钮的网格上的图像来运行脚本时,将使用授予单击该按钮的用户的授权来运行基本脚本。

通过使用“基本”脚本,如果用户有权向其中添加文件,则可能会在“我的云端硬盘”或共享云端硬盘上创建该文件。如果您需要保留当前的用户界面设计,您可能必须使用服务帐户并授予设置它以获得域范围的权限委派。为此,您需要 Google Workspace 管理员权限。

© www.soinside.com 2019 - 2024. All rights reserved.