5

我有一个谷歌电子表格,它跟踪电子表格所在文件夹中的文件及其名称。
我已经查看并找不到如何获取该工作表的位置或 ID
在 MS CMD 脚本中它将是“%~dp0”。
如何在谷歌应用电子表格脚本中执行此操作。

 function FnctnMenuUpdateGetLocation() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
  var SSID=ss.get.getId();
  var file = DocsList.getFileById(SSID);

  Browser.msgBox(SSID);
  Browser.msgBox(add);
}

https://docs.google.com/spreadsheet/ccc?key=0AmsQN3N9km70dGwtLTJXVVBzbmJhdmE5OFpkbTVxelE&usp=sharing ya,我正在工作,
这是一个现场工作表

从我所拥有的,你如何从电子表格中获取谷歌驱动器中电子表格的地址,
我将让它添加我需要的文件夹/目录和文件

由于谷歌文档不是谷歌驱动器,从电子表格到谷歌驱动器的界面如何

4

2 回答 2

4

这适用于 2018 年 6 月

此答案还假设您只对父母列表中的第一个文件夹感兴趣。

var spreadsheetId =  SpreadsheetApp.getActiveSpreadsheet().getId();
var spreadsheetFile =  DriveApp.getFileById(spreadsheetId);
var folderId = spreadsheetFile.getParents().next().getId();
于 2018-06-06T04:22:09.617 回答
3

Document Service 和 Drive Service 都可以报告电子表格所在的文件夹。

这是您的函数,已更新以显示包含电子表格的文件夹的名称,同时使用这两种服务。

在此处输入图像描述

function FnctnMenuUpdateGetLocation() {
   var ss = SpreadsheetApp.getActiveSpreadsheet();
   var SSID=ss.getId();

   var fileInDocs = DocsList.getFileById(SSID);
   var folderInDocs = fileInDocs.getParents()[0].getName();

   var fileInDrive = DriveApp.getFolderById(SSID);
   var folderinDrive = fileInDrive.getParents().next().getName();

   Browser.msgBox("Docs says: " + folderInDocs +
                  ", Drive says: " + folderinDrive);
}

Document Service 的.getParents()方法返回一个文件夹对象数组,而 Drive 的方法返回一个迭代器,因此在获得所有父文件夹后如何检索特定父文件夹的详细信息会有所不同。

请注意,电子表格可能“包含”在多个文件夹中......在这种情况下,我们假设列表中的第一个文件夹是唯一的 - 该假设可能无效。

于 2013-07-12T15:23:58.493 回答