如何检测用户更换表?

时间:2016-06-08 13:02:25

标签: google-apps-script google-sheets

如何在电子表格中打开特定工作表时检测并触发自定义操作?

我在https://developers.google.com/apps-script/guides/triggers/events

中找不到合适的功能

2 个答案:

答案 0 :(得分:3)

要进行轮询,因为Mogsdad建议您可以在补充工具栏(或任何UI元素)中使用此代码

$(function() {
   /**
   * On document load, assign click handlers to each button and try to load the
   * user's origin and destination language preferences if previously set.
   */
   poll();
}

function poll(interval){
    interval = interval || 2000;
    setTimeout(function(){
    google.script.run.withSuccessHandler(loadSheetName)
        .withFailureHandler(showError).getSheetName();
    poll();
    }, interval);
};

function loadSheetName(sheetName) {
   alert(sheetName);
   }

function getSheetName() {
   google.script.run.withSuccessHandler(loadSheetName)
        .withFailureHandler(showError).getSheetName();
   }

在你的.gs代码中

function getSheetName() {
var sheetName =         SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
return sheetName;
}

答案 1 :(得分:2)

除了您链接的文档中的API之外,没有提供用于触发用户事件的API。

我只能想到一个解决方法:如果您的应用程序涉及自定义UI元素,特别是侧边栏或对话框,那么您可以轮询活动单元格,并从中确定活动工作表。

首先看How to poll a Google Doc from an add-on