【问题标题】:What is the difference between getActive() and getActiveSpreadsheet() in Apps Script?Apps 脚本中的 getActive() 和 getActiveSpreadsheet() 有什么区别?
【发布时间】:2017-05-10 23:48:38
【问题描述】:

这两种方法与 Google Apps 脚本中的 SpreadSheetApp 类有什么区别?

两者都返回“当前活动的电子表格,如果没有则返回 null”。它们之间有什么区别,究竟是什么?我应该什么时候使用它们?

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    对我来说,它们确实可以互换。两者都返回电子表格对象并可以访问Class Spreadsheet 可用的方法。随意使用您喜欢的任何一个。

    同样的结果:

     Logger.log("getActiveSpreadSheet() "+SpreadsheetApp.getActiveSpreadsheet().getUrl());
     Logger.log("getActive() "+ SpreadsheetApp.getActive().getUrl() );
    

    【讨论】:

    • 我在脚本编辑器中使用SpreadsheetApp.getActive() === SpreadsheetApp.getActiveSpreadsheet() 进行了测试,答案是false,有什么想法吗?
    【解决方案2】:

    它们似乎没有返回指向同一动物的指针。 我不知道为什么(没有时间调查)但是

    1. getActiveSheet() 返回的工作表有 getRangeByName() 方法 - 而来自getActive() 的工作表没有 有它
    2. getActiveSheet() 返回的工作表没有 getCharts() 方法 - 而来自getActive() 的工作表有 有它

    要么是我脑子里想的东西让我觉得这是合理的,要么只是令人沮丧的语言/语法设计(也许是一些从未得到解决的遗留废话?)

    【讨论】:

    • 奇怪,这对我来说是另外一种方式 - getActiveSheet() 返回的对象有 getCharts(),但没有 getRangeByName() .该对象实际上属于Sheet 类,而不是Spreadsheet(由getActive() 或getActiveSpreadsheet() 返回)。此外,OP 中的问题与getActiveSheet() 无关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-15
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    相关资源
    最近更新 更多