Google Apps电子表格根据当前日期(月)打开特定工作表

时间:2013-04-25 11:28:28

标签: google-apps-script google-sheets

我目前正在Google Apps中创建一个电子表格,用于记录客户的出勤情况。电子表格包含12张。每张表代表一年中的一个月,因此第一张表示一月,第二张表示二月等。

我正在尝试使用On_Open功能创建Google Apps脚本,以根据当前日期自动打开相关表格。

例如,如果当前日期为18/02/2013,那么电子表格将自动打开,并将工作表2(二月)作为焦点。

我认为我使用SpreadsheetApp.setActiveSheet是正确的,但我不知道如何使用Google App Script专门捕捉日期。

我假设脚本会像下面那样流动?

如果日期= 18/02/2013 然后是SpreadsheetApp.setActiveSheet 2

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

获得一个月号,0 - 11:

var month = (new Date()).getMonth();

假设您有{Sheet1 .. Sheet12}代表1月至12月,那么这将有效:

/**
 * Selects a monthly sheet
 */
function onOpen() {
  var month = (new Date()).getMonth();

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[month];
  ss.setActiveSheet(sheet);
};

或者,您可以按月命名工作表,并按名称查找相应的每月工作表。这将允许您在电子表格中包含其他非月度表:

/**
 * Selects a monthly sheet
 */
function onOpen() {
  var monthTabs = [ "January", "February", "March", "April", "May", "June",
    "July", "August", "September", "October", "November", "December" ];

  var month = (new Date()).getMonth();
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName(monthTabs[month]);
  ss.setActiveSheet(sheet);
};