如果我单击一个单元格,则需要在 Gsheet 中捕获电子邮件或姓名

2024-02-16

如果有人单击“Ay”列复选框,则需要在不同的列单元格中捕获他/她的电子邮件

[enter image description here


您并不总是能够访问用户,唯一可以在单击上工作的触发器是 onSelectionChange(),这是一个简单的触发器,这意味着它不能执行任何需要权限的操作,而 Session.getActiveUser() 需要https://www.googleapis.com/auth/userinfo.email。我不认为有一个解决方案可以满足您的要求。

您可以尝试一下这个功能,看看它是否适合您。

  function onSelectionChange(e) {
  if (e.user) {
    const ss = SpreadsheetApp.getActive();
    const sh = ss.getSheetByName("Log");//You need to create this
    sh.appendRow([new Date(),e.user.email,e.user.nickname])
    Logger.log('email: %s', e.user.email);
    Logger.log('nickName: %s', e.user.nickname);
  }
  Logger.log(JSON.stringify(e));
}

自己尝试是没有意义的。

使用可安装的 onedit 函数:

function onInstallableEdit(e) {
  //e.source.toast("Entry");//debug
  //Logger.log(JSON.stringify(e));//debug
  const sh = e.range.getSheet();
  if(sh.getName() == "Audit sheet May" && e.range.columnStart == 51 && e.range.rowStart > 1 && e.value == 1 ) {
    //e.source.toast('Flag1');//debug
    if(e.user) {
      //e.range.offset(0,1).setValue(`${e.user.email}\n${new Date()}`);
      e.range.offset(0,1,1,2).setValues([[e.user.email,new Date()]]);
    }
  }
}

function createTrigger() {
  if(ScriptApp.getProjectTriggers().filter(t => t.getHandlerFunction() == "onInstallableEdit").length == 0)  {
    ScriptApp.newTrigger("onInstallableEdit").forSpreadsheet(SpreadsheetApp.getActive()).onEdit().create();
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果我单击一个单元格,则需要在 Gsheet 中捕获电子邮件或姓名 的相关文章

随机推荐

  • xcode 4.2 位置模拟器和时区

    我在运行时注意到 xcode 模拟器中有一个漂亮的设置 我可以更改当前位置 从而模拟基于位置的测试 但是 当我尝试使用 NSDateFormatter 获取日期时 当地日期仍处于太平洋标准时间 我在太平洋时区 NSDateFormatter
  • 如何在 ios 中的联系人表视图中实现搜索栏 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我在 viewdidload 中有以下代码 totalstring NSMutableArray alloc initWithObje
  • 比较 R 中的时间

    我有两列 例如 A 和 B 时间格式为 HH MM A B 00 00 06 00 str A 和 str B 给出 字符 我想做一个比较 例如 Comment lt ifelse hour part A lt hour part B De
  • Asp.Net System.Web.Routing 不会路由 URL,除非最后有 .aspx

    我的路由有一个奇怪的问题 我有一个现有网站 我正在尝试将其添加到其中 它有效 但前提是 aspx 位于 URL 末尾 如果我删除 aspx 则会出现错误 找不到资源 我创建了一个快速测试网站并将代码复制到其中 它工作得很好 两者之间的代码是
  • Photoshop 文本工具在文本开头添加标点符号[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在使用 Photoshop 时遇到了一个奇怪的问题 当我使用文字工具时 我可以正常键入字母 但是当我键入任何标点符号时 它会添加到文本的
  • PG::ConnectionBad:致命:用户“用户名”错误的对等身份验证失败

    当我尝试使用 User connection 或 generic table connection 连接到我的 pg 数据库时 出现此错误 PG ConnectionBad 致命 用户 用户名 的对等身份验证失败 我仔细检查了我的datab
  • 我应该如何将 redux 与不会重用的嵌套子组件一起使用?

    我正在开发一个具有许多子组件的组件 其中一些子组件嵌套了五层 我对使用 redux 感兴趣 因为它的优点是在公共状态原子中拥有单一的事实来源 我不明白的是智能 愚蠢组件的推荐 并将提供者置于主要组件之上 并通过道具传递所有内容 如果我这样做
  • gae 样板文档

    在为 App Engine 寻找一个好的社交登录包时 我尝试了 gae boilerplate 但我发现除了自述文件之外没有任何文档 我认为这根本不够 我有很多问题 其中包括 样板文件应该用作库还是根据需要下载并修改 样板应该如何更新 每个
  • Python yaml:ModuleNotFoundError

    我在 conda 中创建了一个新环境并在那里安装了 yaml conda list grep yaml yaml 0 1 7 had09818 2 但我无法导入它 python c import yaml Traceback most re
  • 如何构建微服务前端

    Let s say I have a dozen microservices I am wondering where should the front end go Let s say front end is HTML Javascri
  • 迭代时修改 Java8 流中的对象

    在 Java8 流中 我可以修改 更新其中的对象吗 例如 List
  • 如何纠正错误“从创建它的线程以外的线程访问”?

    下面的代码给了我下面的错误 我想我需要 InvokeRequired 但我不明白我该如何使用 跨线程操作无效 从创建它的线程以外的线程访问控制 listBox1 代码 using System Collections Generic usi
  • Eclipse 中不同的断点图标有何含义?

    在 Eclipse 中使用断点时 我有时会注意到它们有不同的图标 注释 左侧栏上的标记 有时它只是一个蓝色的球 有时上面有一个复选标记 有时它是十字形的 所有这些注释是什么意思 蓝色球 常规断点 活动 可能设置了命中计数 空球 即白色 断点
  • 使用 QuickCheck 测试一元法则

    是否有用于测试的库或工具laws https wiki haskell org Monad laws自定义 monad 的 我目前的黑客尝试是这样的 Define Arbitrary1 如同Eq1 Show1 etc 定义一个包装的辅助类型
  • laravel 私有通道和 laravel-echo-server 的身份验证问题

    我在 Laravel 5 5 中使用 laravel echo server 以及 Redis 和 vuejs 通过 websockets 广播事件 通过公共渠道 它工作正常 并且事件可以正确广播到客户端 但是当我将其更改为私有通道时 即使
  • 如何检查 Star Basic 中损坏的内部链接?

    我正在为 LibreOffice Writer 创建一个基本宏来检查损坏的内部链接 简而言之 生成所有锚点的列表 循环浏览文档 查找内部超链接 如果内部超链接不在锚点列表中 则打开它进行编辑 然后停止 我的代码有一些未解决的问题 withi
  • 语句包含 OUTPUT 子句但没有 INTO 子句错误

    我有一个触发器 它使用同一插入记录的身份主键 MessageId 的值更新插入的字段 RootId 之一 仅当插入记录的 RootId 字段为 0 时才应进行更新 触发器看起来像这样 ALTER TRIGGER dbo Trigger Ro
  • Google App Engine 应用程序可能消耗的最大内存是多少?

    最大金额是多少local记忆 notMemcache Google App 引擎应用程序的每个实例都可以使用吗 我找不到任何关于GAE 配额页面 http code google com appengine docs quotas html
  • Linq to SQL - 基础列长度

    我使用 Linq to SQL 一段时间了 我发现它非常有用且易于使用 对于我过去使用过的其他 ORM 工具 从数据库填充的实体对象通常有一个属性 指示数据库中基础数据列的长度 这在数据绑定情况下非常有用 例如 您可以在文本框上设置 Max
  • 如果我单击一个单元格,则需要在 Gsheet 中捕获电子邮件或姓名

    如果有人单击 Ay 列复选框 则需要在不同的列单元格中捕获他 她的电子邮件 您并不总是能够访问用户 唯一可以在单击上工作的触发器是 onSelectionChange 这是一个简单的触发器 这意味着它不能执行任何需要权限的操作 而 Sess