【问题标题】:set newly created google sheet as the active sheet将新创建的谷歌工作表设置为活动工作表
【发布时间】:2017-06-09 23:15:08
【问题描述】:

我正在使用 google 表格将数据导入 mysql 数据库。每个月都会创建一个新工作表,例如 06_2017。有没有办法将新创建的工作表设置为活动工作表或根据当前月份和年份将该工作表设置为活动工作表。无需硬编码

  var gsheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('06_2017'); 
  var gsheetname = sheet.getSheetName();
  var gdata = sheet.getDataRange().getValues();  

【问题讨论】:

  • 您可以将工作表的名称存储在 PropertiesService 中,并在您的 onOpen 函数中使用 SpreadsheetApp.getActive().getSheetByName() 并从 scriptProperties 获取名称文件名。 var scriptProperties = PropertiesService.getUserProperties(); var sheetname = scriptProperties.getProperty('sheetname');

标签: google-apps-script


【解决方案1】:

正如@Cooper 所说,您可以将新创建​​的工作表的名称存储在UserProperties 中,然后将您的代码放在脚本的onOpen() 方法中。

你可以这样做,

function onOpen(e)
{
  var prop = PropertiesService.getDocumentProperties();
  var sheet_name = prop.getProperty(<NAME_OF_SHEET>);
  var sp = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheet_name).activate();
}

【讨论】:

    【解决方案2】:

    如果您要坚持使用“MM_YYYY”模式来命名工作表,以下代码将始终激活具有最新日期的工作表。如果您的计划是在单个文档中使用不同的命名模式,则需要重构以下代码以实现这一点。

    onOpen()函数是GAS中所谓的简单触发器之一,所以当你打开文档时,这个函数里面的每一个代码都会被执行。 sort() 方法将根据给定的标准对数组元素进行排序。由于 sort() 不知道您想使用什么标准对 Sheet 对象进行排序,因此您需要传递一个比较器函数来覆盖默认值。

    比较器函数解析工作表名称并通过将年份和日期(按此顺序)传递给新的 Date() 构造函数来创建日期对象。然后它使用日期减法的结果对“sheets”数组进行降序排序,从最大值到最小值。

    最后,您获取排序数组的第一个元素(即最新创建的工作表)并将其设置为活动工作表。

    function onOpen() {
    
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheets = ss.getSheets();
    
      sheets.sort(function(a,b) {
    
      var arr1 = a.getName().split("_");
      var arr2 = b.getName().split("_");
    
      return new Date(arr2[1], arr2[0]) - new Date(arr1[1], arr1[0]);
    
      });
    
    if (sheets.length < 1) {
    
        return;
    }
    
    
    ss.setActiveSheet(sheets[0]);
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多