【问题标题】:How to use .searchfiles() in google script custom function?如何在谷歌脚本自定义函数中使用 .searchfiles()?
【发布时间】:2020-10-16 15:50:22
【问题描述】:

我目前编写了一些谷歌脚本来查找标题包含特定日期的文件,然后从该电子表格文件中提取 URL。这是我当前的代码。

function FindID(InvoiceDate) {
  var files = DriveApp.searchFiles(InvoiceDate);
  while (files.hasNext()){
    var file = files.next();
    Logger.log('Name:'+file.getName()+'\nURl'+ file.getUrl());
}

当我尝试使用该函数时,我收到一个错误“您没有权限调用 driveapp.searchfiles()”。当我环顾其他问题时,我收集到我可能无法在自定义函数中使用它?是否有任何变通方法或不同的方法可以实现我的目标?

【问题讨论】:

  • 现阶段,在自定义函数中使用需要授权的方法时,会出现这样的错误。这似乎是谷歌方面的当前规范。因此,例如,作为解决方法,此信息对您的情况有用吗? stackoverflow.com/q/63553532/7108653stackoverflow.com/q/62205747/7108653github.com/tanaikech/…
  • 你为什么不把它作为一个常规函数运行呢?即,从脚本编辑器或作为菜单执行它?输入可以由工作表本身提供。将信息放入单元格中,然后运行脚本。
  • @Tanaike 我相信我会尝试使用从 Github 共享的代码。我相信第一个功能可能会起作用;我想在文件夹中找到一个特定文件(标题包含发票日期)并从该文件中检索 URL,这可能吗/您对如何操作有建议吗?
  • @Marios 我在菜单中使用它时收到错误“您没有权限...”。我相信这是一个谷歌隐私限制,它不允许在自定义函数中专门调用 .searchfiles() 函数。如果我误解了您,请告诉我;一般来说,我对谷歌脚本很陌生。
  • 是您想要在驱动器上获取的文件还是可以从 UI 输入它?

标签: google-sheets


【解决方案1】:

来自提问者的回答:

我做了一个onOpen()函数,并创建了一个自定义菜单,可以调用原帖中的函数。

这允许 searchFiles() 工作。

function onOpen() { 
  var ss = SpreadsheetApp.getActiveSpreadsheet(); 
  var searchMenuEntries = [ {name: "Function Title", functionName: "Function"}]; 
  ss.addMenu("Print...", searchMenuEntries);
}

【讨论】:

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