Google 脚本应用程序列出表格中的驱动器文件夹
Google Script App list drive folder in Sheets
我正在尝试复制到步骤
https://ctrlq.org/code/19854-list-files-in-google-drive-folder
它成功地为 sheet 中的列创建了 headers,但没有 get/print 行中的任何数据。我哪里错了?
这是我的:
/* Code written by @hubgit
https://gist.github.com/hubgit/3755293
Updated since DocsList is deprecated
*/
function listFilesInFolder(folderName) {
var folder = DriveApp.getFoldersByName(folderName).next();
var contents = folder.getFiles();
var file, data, sheet = SpreadsheetApp.getActiveSheet();
sheet.clear();
sheet.appendRow(["Name", "Date", "Size", "URL", "Download", "Description", "Type"]);
for (var i = 0; i < contents.length; i++) {
file = contents[i];
if (file.getFileType() == "SPREADSHEET") {
continue;
}
data = [
file.getName(),
file.getDateCreated(),
file.getSize(),
file.getUrl(),
"https://docs.google.com/uc?export=download&confirm=no_antivirus&id=" + file.getId(),
file.getDescription(),
file.getFileType().toString()
];
sheet.appendRow(data);
}
};
如果您在其中硬编码文件夹 ID,则以下内容有效。
还有.
function listFilesInFolder(folderName) {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.appendRow(["Name", "Date", "Size", "URL", "Download", "Description", "Type"]);
var folder = DriveApp.getFolderById("PUT_YOUR_FOLDERID_IN_HERE");
//Logger.log(folder);
var contents = folder.getFiles();
var cnt = 0;
var file;
while (contents.hasNext()) {
var file = contents.next();
cnt++;
Logger.log(file);
Logger.log(cnt);
data = [
file.getName(),
file.getDateCreated(),
file.getSize(),
file.getUrl(),
"https://docs.google.com/uc?export=download&confirm=no_antivirus&id=" + file.getId(),
file.getDescription(),
file.getMimeType(),
];
sheet.appendRow(data);
};
};
您需要根据需要定制代码。首先在 ListFilesInFolder(folderName)
中没有任何通过,所以删除 folderName
部分。然后尝试使用特定的文件夹名称。接下来,如果我们不想局限于电子表格。我们需要删除行:
if (file.getFileType() == "SPREADSHEET") {
continue;
}
有,其实不需要一个for loop
contents.hasNext()
就够了。所以这个功能最终会是这样的。正在运行。
function listFilesInFolder() {
var folder = DriveApp.getFoldersByName('SRL').next();
Logger.log(folder);
var contents = folder.getFiles();
Logger.log(contents);
var file, data, sheet = SpreadsheetApp.getActiveSheet();
sheet.clear();
sheet.appendRow(["Name", "Date", "Size", "URL", "Download", "Description", "Type"]);
if (contents.hasNext()) {
file = contents.next();
Logger.log(file);
data = [
file.getName(),
file.getDateCreated(),
file.getSize(),
file.getUrl(),
"https://docs.google.com/uc?export=download&confirm=no_antivirus&id=" + file.getId(),
file.getDescription(),
];
sheet.appendRow(data);
}
};
我正在尝试复制到步骤 https://ctrlq.org/code/19854-list-files-in-google-drive-folder
它成功地为 sheet 中的列创建了 headers,但没有 get/print 行中的任何数据。我哪里错了?
这是我的:
/* Code written by @hubgit
https://gist.github.com/hubgit/3755293
Updated since DocsList is deprecated
*/
function listFilesInFolder(folderName) {
var folder = DriveApp.getFoldersByName(folderName).next();
var contents = folder.getFiles();
var file, data, sheet = SpreadsheetApp.getActiveSheet();
sheet.clear();
sheet.appendRow(["Name", "Date", "Size", "URL", "Download", "Description", "Type"]);
for (var i = 0; i < contents.length; i++) {
file = contents[i];
if (file.getFileType() == "SPREADSHEET") {
continue;
}
data = [
file.getName(),
file.getDateCreated(),
file.getSize(),
file.getUrl(),
"https://docs.google.com/uc?export=download&confirm=no_antivirus&id=" + file.getId(),
file.getDescription(),
file.getFileType().toString()
];
sheet.appendRow(data);
}
};
如果您在其中硬编码文件夹 ID,则以下内容有效。
还有
function listFilesInFolder(folderName) {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.appendRow(["Name", "Date", "Size", "URL", "Download", "Description", "Type"]);
var folder = DriveApp.getFolderById("PUT_YOUR_FOLDERID_IN_HERE");
//Logger.log(folder);
var contents = folder.getFiles();
var cnt = 0;
var file;
while (contents.hasNext()) {
var file = contents.next();
cnt++;
Logger.log(file);
Logger.log(cnt);
data = [
file.getName(),
file.getDateCreated(),
file.getSize(),
file.getUrl(),
"https://docs.google.com/uc?export=download&confirm=no_antivirus&id=" + file.getId(),
file.getDescription(),
file.getMimeType(),
];
sheet.appendRow(data);
};
};
您需要根据需要定制代码。首先在 ListFilesInFolder(folderName)
中没有任何通过,所以删除 folderName
部分。然后尝试使用特定的文件夹名称。接下来,如果我们不想局限于电子表格。我们需要删除行:
if (file.getFileType() == "SPREADSHEET") {
continue;
}
有,其实不需要一个for loop
contents.hasNext()
就够了。所以这个功能最终会是这样的。正在运行。
function listFilesInFolder() {
var folder = DriveApp.getFoldersByName('SRL').next();
Logger.log(folder);
var contents = folder.getFiles();
Logger.log(contents);
var file, data, sheet = SpreadsheetApp.getActiveSheet();
sheet.clear();
sheet.appendRow(["Name", "Date", "Size", "URL", "Download", "Description", "Type"]);
if (contents.hasNext()) {
file = contents.next();
Logger.log(file);
data = [
file.getName(),
file.getDateCreated(),
file.getSize(),
file.getUrl(),
"https://docs.google.com/uc?export=download&confirm=no_antivirus&id=" + file.getId(),
file.getDescription(),
];
sheet.appendRow(data);
}
};