首页 > 解决方案 > 在 Google Script Web 应用程序上向用户确认工作表更新

问题描述

因此,我正在开发一个基本系统,当在 Google Scripts 上托管的 Web 应用程序上单击一个按钮时,该系统将向特定单元格添加一个值。到目前为止,我的按钮正在工作,它调用了一个看起来像这样的函数:

function increment(cell) {
  var range = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].getRange(cell);
  range.setValue(range.getValue() + 1);
}

它按应有的方式添加,但我希望该函数向用户返回一些内容以确认它已添加到 Google 表格中。我在想在页面的顶部,要么在中间,要么在右边。这可能吗?

为了更详细一点,我更愿意从长远来看使用 Bootstraps 警报格式之类的东西,以使其更容易,但在这一点上,我只想让它显示给用户,然后我可以处理让它以后看起来不错。

任何建议都将不胜感激,因为我觉得我遇到了困难,因为在用户按下按钮后我无法显示代码。Google 是否不允许在页面加载后将 HTML 添加到页面中?

我的另一个想法是对刚刚隐藏然后由函数显示然后在一段时间后重新隐藏的页面进行可变加载,但是我很难从在线信息中找到一种方法来做到这一点。

欢迎所有建议,提前谢谢!

标签: javascriptgoogle-apps-scriptgoogle-sheets

解决方案


更新

单击按钮后更新页面的方法是使用 WebApp 本身的和(withSuccessHandler(function)参考。所以基本上你所做的就是从前端的 JavaScript 修改页面。在参考资料中,您可以看到以下示例:withFailureHandler(function)google.script.run

Code.gs

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}

function getUnreadEmails() {
  return GmailApp.getInboxUnreadCount();
}

Index.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script>
      function onSuccess(numUnread) {
        var div = document.getElementById('output');
        div.innerHTML = 'You have ' + numUnread
            + ' unread messages in your Gmail inbox.';
      }

      google.script.run.withSuccessHandler(onSuccess)
          .getUnreadEmails();
    </script>
  </head>
  <body>
    <div id="output"></div>
  </body>
</html>

如您所见,页面本身被动态调用函数的结果修改。您还可以使用任意数量的常规基于 Web 的库。

原始答案(在电子表格中显示)

您可以在类中使用警报弹出窗口或侧边栏Ui。另一种选择是使用电子表格的第一行作为消息栏:合并所有第一行,然后您可以动态设置格式和消息。

参考


推荐阅读