【发布时间】:2017-05-10 23:48:38
【问题描述】:
这两种方法与 Google Apps 脚本中的 SpreadSheetApp 类有什么区别?
两者都返回“当前活动的电子表格,如果没有则返回 null”。它们之间有什么区别,究竟是什么?我应该什么时候使用它们?
【问题讨论】:
标签: google-apps-script google-sheets
这两种方法与 Google Apps 脚本中的 SpreadSheetApp 类有什么区别?
两者都返回“当前活动的电子表格,如果没有则返回 null”。它们之间有什么区别,究竟是什么?我应该什么时候使用它们?
【问题讨论】:
标签: google-apps-script google-sheets
对我来说,它们确实可以互换。两者都返回电子表格对象并可以访问Class Spreadsheet 可用的方法。随意使用您喜欢的任何一个。
同样的结果:
Logger.log("getActiveSpreadSheet() "+SpreadsheetApp.getActiveSpreadsheet().getUrl());
Logger.log("getActive() "+ SpreadsheetApp.getActive().getUrl() );
【讨论】:
SpreadsheetApp.getActive() === SpreadsheetApp.getActiveSpreadsheet() 进行了测试,答案是false,有什么想法吗?
它们似乎没有返回指向同一动物的指针。 我不知道为什么(没有时间调查)但是
getActiveSheet() 返回的工作表有 getRangeByName() 方法 - 而来自getActive() 的工作表没有 有它getActiveSheet() 返回的工作表没有 getCharts() 方法 - 而来自getActive() 的工作表有 有它要么是我脑子里想的东西让我觉得这是合理的,要么只是令人沮丧的语言/语法设计(也许是一些从未得到解决的遗留废话?)
【讨论】:
getActiveSheet() 返回的对象有 getCharts(),但没有 getRangeByName() .该对象实际上属于Sheet 类,而不是Spreadsheet(由getActive() 或getActiveSpreadsheet() 返回)。此外,OP 中的问题与getActiveSheet() 无关。