【问题标题】:Google App Script - Web App - Get Active Sheet NameGoogle App Script - Web App - 获取活动工作表名称
【发布时间】:2019-09-06 15:20:40
【问题描述】:

我有一个作为 WebApp 发布的 Google Apps 脚本。在脚本中,我希望能够选择活动工作表并获取工作表名称。

例如,我有一个包含两个选项卡的电子表格:Tab1 和 Tab2。我目前正在 UI 中查看 Tab2。

当我运行以下代码时,我期望 thisSheet = "Tab2"。相反,它始终等于“Tab1”。

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet()
var thisSheet = sheet.getName();

请记住,我不知道工作表的名称是什么。我意识到这是从 Web 应用程序运行的上下文问题,因为当我从 ScriptEditor 中运行该函数时,它会按预期执行。从网络应用程序执行此代码时是否有任何解决方法?

【问题讨论】:

  • 您能否阐明为什么需要在已部署的 Web 应用程序的上下文中访问电子表格?了解访问 Web 应用程序时的预期行为将有助于我们思考解决方案
  • 我正在提取选项卡名称以插入来自 webapp 的 API 调用。有用吗?
  • George,您能否提供有关如何触发流程的信息 - 它是 onOpen() / onEdit() 触发器等吗?基本上,在什么情况下调用getActiveSpreadsheet()
  • getActiveSpreadsheet() 从 doGet 调用。从 onOpen 或 onEdit 调用它会有所不同吗?
  • 仍然没有解释为什么是网络应用程序?试试侧边栏或模式对话框怎么样?

标签: javascript google-apps-script google-sheets web-applications


【解决方案1】:

这是一个简单的网络应用:

function doGet() {
  var ss=SpreadsheetApp.getActive();
  var html=Utilities.formatString('Process Complete:ActiveSheet: %s',ss.getActiveSheet().getName());
  return HtmlService.createHtmlOutput(html);
}

当我打开电子表格并运行 web 应用程序时,它总是返回最左侧工作表的名称。这是您在服务器SpreadsheetApp.getActive().getSheets()[0] 上打开电子表格时得到的表格;

【讨论】:

  • 我以前从来没有想过,但我现在想不出办法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-24
  • 2019-12-21
  • 2019-08-13
  • 2019-03-29
  • 1970-01-01
相关资源
最近更新 更多