首页 > 解决方案 > 使用自定义按钮和链接创建对话框

问题描述

所以我有一个内部电子邮件列表,我想为新员工订阅和退订离开的员工。我正在使用带有复选框的谷歌表格来执行此操作。主要是因为这张表已经在HR流程中使用过了,所以很容易记住做。

当复选框被选中时,我希望弹出一个对话框,其中包含一个显示订阅和取消订阅的按钮。这些按钮链接到电子邮件工具中允许人们订阅或取消订阅的位置。

我现在的抄写员是

    var result = ui.alert
  (
     'What would you like to do?',
     'Subscribe a new Employee or' + "\n" + 'Unsubcribe an employee thats left',
      ui.ButtonSet.Subscribe_Unsubscribe
  );

  if (result == ui.Button.Subscribe) 
  {
    
  }else
  {
     ui.alert('Employee has been removed from the internal mailing list');
   }
}

我不确定如何通过更改按钮集名称以这种方式工作,我也不知道如何为按钮分配链接。

期待您的回复!!!

标签: google-apps-scriptgoogle-sheets

解决方案


步骤1:

首先,您需要创建一个可安装的触发器,该触发器将在编辑单元格时在 GAS 中执行一个函数。

您可以在此处找到有关可安装触发器的说明/参考:

可安装触发器

为什么要安装触发器?因为您需要连接到需要授权的电子邮件服务。

示例代码:

/**
 * Creates a trigger for when a spreadsheet is edited.
 */
function createSpreadsheetEditTrigger() {
  var ss = SpreadsheetApp.getActive();
  ScriptApp.newTrigger('myFunction')
      .forSpreadsheet(ss)
      .onEdit()
      .create();
}

第2步:

要创建自定义对话框,您需要在 GAS 中从头开始创建 HTML 文件,IDE 允许您从菜单中创建 HTML 文件。

然后在您的脚本中,您需要使用它getUi().showModalDialog来显示对话框。

我在这里的 Stack Overflow 帖子中有一些示例代码:Stack Overflow

请注意,HTML 需要onclick="google.script.run"onclick="google.script.host.close()"参数才能在 Apps 脚本中执行函数。

参考:

显示模态对话框()

模板化的 HTML

HTML 和 Apps 脚本之间的通信


推荐阅读