使用谷歌脚本循环使用多个谷歌电子表格

时间:2014-12-18 01:30:23

标签: google-apps-script google-spreadsheet-api

所以我在google驱动器中有多个不同的电子表格(完全不同的文件,不在同一个文件和不同的工作表中),而且我一直试图想出一种从所有电子表格中提取数据的方法。填充一个主要表格。但我一直想弄清楚的问题是,我似乎找不到循环遍历所有电子表格的方法。

我已经阅读了关于另一个类似问题的建议,他们在其中创建了一个不同的电子表格,用于存储其中的所有电子表格ID。但我的另一个问题是,当我运行应用程序时,我不知道有多少电子表格,因为有更多的电子表格一直在添加。

所以,因为他们似乎并不是一种遍历驱动器中所有电子表格的方法,所以他们是谷歌脚本中的一种方式,以便无论何时创建文件,脚本都会运行并且是能够获得新创建的文件ID?

谢谢, 乙

2 个答案:

答案 0 :(得分:2)

Google表格的MIME类型为:

<强>应用/ vnd.google-apps.spreadsheet

您可以遍历驱动器中的所有文件并记录所有文件的MIME类型,只是为了查看不同的MIME类型:

function getAllSheets() {
 // Log the name of every file in the user's Drive.
 var files = DriveApp.getFiles();
   while (files.hasNext()) {
     var file = files.next();
     Logger.log(file.getMimeType());
 }
};

您可以按特定MIME类型获取所有文件。此代码将驱动器中所有电子表格的名称打印到LOG。

function getAllSheets() {
 // Log the name of every file in the user's Drive.
 var files = DriveApp.getFilesByType("application/vnd.google-apps.spreadsheet")
   while (files.hasNext()) {
     var file = files.next();
     Logger.log(file.getName());
 }
};

因此,您可以遍历驱动器或特定文件夹中的所有电子表格。

答案 1 :(得分:0)

所有谷歌驱动器文件

使用“Google Apps Script - Drive API”列出所有文件

// Log the name of every file in the user's Drive.
var files = DriveApp.getFiles();
while (files.hasNext()) {
  var file = files.next();
  Logger.log(file.getName());
}

从顶部的示例: https://developers.google.com/apps-script/reference/drive/

getMimeType()

查看方法是否存在。如果obj.getMimeType ===未定义其文件夹。 或者,为了在api更改(将方法添加到文件夹)的情况下使其更加健壮,请使用 if(obj.getMimeType === undefined || obj.getMimeType()。toLowerCase()==“application / vnd.google-apps.folder”)

来自How can I discriminate between file and folder in DriveApp using GAS

相关问题