所以我在google驱动器中有多个不同的电子表格(完全不同的文件,不在同一个文件和不同的工作表中),而且我一直试图想出一种从所有电子表格中提取数据的方法。填充一个主要表格。但我一直想弄清楚的问题是,我似乎找不到循环遍历所有电子表格的方法。
我已经阅读了关于另一个类似问题的建议,他们在其中创建了一个不同的电子表格,用于存储其中的所有电子表格ID。但我的另一个问题是,当我运行应用程序时,我不知道有多少电子表格,因为有更多的电子表格一直在添加。
所以,因为他们似乎并不是一种遍历驱动器中所有电子表格的方法,所以他们是谷歌脚本中的一种方式,以便无论何时创建文件,脚本都会运行并且是能够获得新创建的文件ID?
谢谢, 乙
答案 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/
查看方法是否存在。如果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